houseCARL
houseCARL には Avick3110 から収集した 14 個の skills があり、リポジトリ単位の職業カバレッジとサイト内 skill 詳細ページを表示します。
このリポジトリの skills
Diagnose and (where houseCARL can) repair the dark / grey / black-face NPC bug in Skyrim SE — resolve the NPC to a FormKey, compare the load-order record winner against the VFS facegen file winner, read and write the winning facegen mesh's values, place the correct facegen as a winning override, or forward the matching appearance. Use when an NPC has a dark, grey, black, brown, or discolored face, a head darker than its body or a neck seam, a face "fine in xEdit but wrong in game", a whole mod's NPCs gone dark after an ESL-compaction or merge, a missing or headless face, or the player's own face turned grey — or when the user mentions FaceGen, facegeom/facetint, the dark face bug, or Face Discoloration Fix. Load before judging any face bug — the fix hinges on which of two precedence systems (record vs file) wins.
Work with Skyrim Special Edition load-order records and assets through the houseCARL MCP server — set or switch the MO2 instance, inspect active or disabled plugins and conflict trees, read records, query across plugins, author reviewable patch ESPs, create or remove records, edit leveled lists and composed structs, diff and resolve, edit NIF meshes and facegen, author dialogue, audit the SkyPatcher and SKSE runtime layers, compact or merge plugins, drive Papyrus compile/decompile and BSA archives, and look mods up on Nexus. Also the router for the bundled Skyrim helper skills (mutagen-reference, papyrus-reference, biped-slot-reference, skypatcher-authoring, spid-authoring, kid-authoring, dialogue-authoring, facegen-diagnostics, oar-authoring, skse-plugin-authoring, papyrus-optimization, tool-output-awareness, bulk-record-jobs). Use whenever the user mentions houseCARL, an MO2 modlist, plugins, load order, conflicts, ESP patches, overrides, a record type (ARMO/WEAP/NPC_/LVLI/MGEF/…), leveled lists, keywords,
Plan and run bulk record jobs over the Skyrim load order via houseCARL — catalogues, audits, item/recipe/link graphs, conflict surveys, and batch patch rebuilds: any job that turns MANY records into ONE structured deliverable. Routes per-record loops to the bulk primitives (defined_in= scope, list-valued references=, group_by= counts, winner_fields=, resolve_names=, format=json, housecarl_resolve, housecarl_diff_record, CopyFrom/composes= batch writes) and standardizes on one canonical JSON shape. Use when the user wants a catalogue, index, spreadsheet, audit, or book of armors/weapons/NPCs/recipes/spells, asks what crafts or references what across plugins, who wins contested records, wants a compatibility patch rebuilt against a new mod version — and in ANY fan-out subagent task told to "extract X and return JSON/a table". Load BEFORE the first query or the first line of an output schema — per-record loops and schema drift are locked in by the first call.
Find armor, clothing, or any equippable record that sits on a given Skyrim biped slot via houseCARL — translate a slot number, vanilla name, or community label into its `BodyTemplate.FirstPersonFlags` bit value and filter the load order with `housecarl_cross_plugin_query` `where ... has`, matching multi-slot pieces an exact-match misses. Use when the user wants to find or list every armor on a biped slot, tag or patch items by equip slot (slot 52 / SOS / pelvis, back or cape slots, a mask or fur-clip slot), audit biped-slot conflicts between mods, find what occupies slot 32 / 52 / a modder slot, or asks which slot a piece uses or what slot number maps to which FirstPersonFlags value. This finds and filters records BY slot — distributing keywords to those items is `kid-authoring`, editing a record's own fields is `skypatcher-authoring`. Load before composing any "armor on slot X" query — the mapping is non-obvious (slot N = bit N-30), so a hand-guessed mask silently filters the wrong slot.
Author or interpret Skyrim dialogue at the data layer via houseCARL — create dialogue topics (DIAL) and lines (INFO) in a new plugin, wire them to a branch and quest, attach result (TIF) scripts, write the start-game-enabled-quest .seq, check voiced lines for their .fuz, and validate a topic's or quest's dialogue graph. Use when the user wants to add or write dialogue, add a line to a topic, create an NPC greeting or conversation, author a dialogue branch or quest dialogue, wire dialogue to a quest stage, attach a result script to a line, make a start-game-enabled quest's dialogue actually start, fix dialogue that never plays / never fires / went silent, or resolve a dropped-line dialogue conflict — or asks what a dialogue topic does, why a line won't fire, or to audit a mod's dialogue. This authors the dialogue RECORDS — distributing forms to NPCs is SPID, keywords to items is KID, editing a record's own fields is SkyPatcher. Load before composing or judging any DIAL/INFO — Skyrim plays nothing unless the Cr
Author or interpret KID (Keyword Item Distributor) `_KID.ini` files — runtime, no-ESP distribution of keywords onto items (weapons, armor, ammo, magic effects, potions, scrolls, books, soul gems, spells, enchantments, and more), from the bundled KID grammar reference. Use when the user wants to write or fix a `_KID` ini, add or distribute a keyword to items, tag all iron weapons / heavy armor / food / soul gems / a whole mod's gear with a keyword, filter items by name, archetype, equip slot, enchanted or templated state, or damage/armor/weight range, set up an `ExclusiveGroup` of mutually-exclusive keywords — or asks what an existing `_KID.ini` does, whether a given item gets a keyword from it, why a line isn't applying, or to audit or review a mod's KID lines. This is keywords on ITEMS — keywords on NPCs are SPID, items in containers are CID, editing a record's own fields is SkyPatcher. Load before writing or reading any KID line — a misread token silently changes what gets tagged.
Look up the schema of any Skyrim record type — its fields, their types, which are writable, the legal enum values, and the arms a polymorphic field accepts — from the bundled record-schema reference before reading or editing that record type. Use when the user wants to edit, patch, or override a record (ARMO, WEAP, MGEF, NPC_, CELL, …), asks what fields a record type has or what an xEdit signature maps to, whether a field is writable, or what values an enum field allows (legal ActorValue, Aggression, or CastType values), or needs a field's name, type, or cardinality before composing a record change. Load before answering any "what fields does X have" or "can I set Y on Z" question and before composing any record write — the reference is by construction from the game's full record library, so a type that's absent is a real coverage gap to surface, never something to guess.
Author or interpret Open Animation Replacer (OAR) configs — the runtime, condition-driven animation system (config.json / user.json) that supersedes Dynamic Animation Replacer (DAR) and still reads DAR's legacy folders, from the bundled OAR reference. Use when the user wants to write or fix a config.json or user.json, add or edit animation conditions, gate a moveset, idle, dodge, or attack animation by weapon type, keyword, perk, race, or magic effect, set a submod priority, override a mod's conditions without editing it, read or convert a DAR _conditions.txt, or use an OAR addon condition (Math, RaySense, IED, Detection, Dialogue) — or asks why an animation isn't playing, which submod wins, or what a config does. This authors animation CONFIGS — distributing forms to NPCs is SPID, keywords to items is KID, editing record fields is SkyPatcher. Load before writing or reading any OAR config — OAR picks winners by priority, not plugin load order, and a wrong token silently no-ops at load.
Review and optimize Papyrus (`.psc`) scripts — classify each part as broken, suboptimal, or clean, explain what makes it heavy, and give the fix (event-driven, caching, states, native offload). Use when the user shares or points at a `.psc`, asks why a mod causes script lag, stack dumps, or Papyrus log spam, wants to know if a script in the load order is heavy, asks to review, optimize, or speed up a script, or questions a `RegisterForUpdate`/`OnUpdate` loop, a cloak scan, `Utility.Wait` chains, uncached `Game.GetPlayer()`/`GetFormFromFile`, persistence or save-bloat, or whether an update interval is acceptable. Load before judging any `.psc`, even a trivial-looking one — Papyrus cost is latency, not line count, and the heavy patterns hide in simple-looking scripts.
Look up Papyrus function signatures, parameter and return types, flags, and documentation from bundled reference files when reading or writing .psc scripts. Corpus covers vanilla Skyrim + SKSE + ~45 popular SKSE-plugin sources (PapyrusUtil, JContainers, MCMHelper, RaceMenu, PO3 Papyrus Extender, ConsoleUtil, and others). Use when the user is editing a Papyrus script, adding or modifying ANY function call in a .psc (even one copied from elsewhere in the same file), investigating a function call, looking up an SKSE plugin function, calling JContainers / PapyrusUtil / SkyUI / MCM scripting APIs, debugging an unknown-identifier or type-mismatch compile error, asking what a Papyrus function or event does, or checking a parameter type. Load before any .psc read or edit; if a function isn't bundled, the skill warns rather than inventing a signature.
Author, build, or audit a native SKSE plugin DLL — C++ / CommonLibSSE-NG code, the layer beneath every SPID/KID/SkyPatcher distributor, framework, and crash logger — NOT an ESP/record plugin and NOT a .psc Papyrus script. Use when the user wants to write or build an SKSE plugin or a .dll, add a native or SKSE Papyrus function, create a BSTEventSink to react to game events, hook the game (trampoline, vtable, Address Library / versionlib), target SE + AE + VR from one DLL, set up a CommonLibSSE / CommonLibSSE-NG project, or audit / explain what an existing open-source SKSE plugin does. This is the C++ producer side — editing records (ARMO, NPC_, DIAL) is the mutagen/record tools, and the .psc Papyrus signature surface is `papyrus-reference`; "plugin" here is a compiled native DLL, not an .esp. Load before scaffolding, building, or reading any SKSE C++ — the multi-runtime, Address-Library, and lifecycle rules compile clean while failing at load.
Author or interpret SkyPatcher INI patches — runtime, no-ESP record edits that filter Bethesda records and set/add/remove their properties, from the bundled SkyPatcher grammar reference. Use when the user wants to write or fix a SkyPatcher patch or `.ini`, buff/nerf/rebalance weapons or armor, change NPC stats/factions/inventory, add or remove keywords, edit a leveled list or container contents, retune spells/enchantments/potions, unlevel encounter zones, tweak cell lighting or fog, disable a placed reference — or asks what an existing SkyPatcher INI does, which records or NPCs it affects, why a patch line isn't applying, to audit or review a mod's INI patches, which filters or operations a record type supports (filterByWeapons, filterByNpcs, attackDamage, keywordsToAdd…), or which subfolder a `.ini` belongs in. Load before writing or reading any SkyPatcher line — the `Plugin.esp|FormID`/EditorID addressing and per-record filter names are non-obvious, and a misread line silently changes what it edits.
Author or interpret SPID (Spell Perk Item Distributor) `_DISTR.ini` files — runtime, no-ESP distribution of spells, perks, items, shouts, keywords, outfits, factions, and AI packages to NPCs, from the bundled SPID grammar reference. Use when the user wants to write or fix a SPID `_DISTR` ini, distribute a spell/perk/item/keyword/outfit to NPCs, give all bandits or guards or a whole race or faction some form, hand out gear or an ability filtered by gender/level/skill/chance, set an AI package on NPCs, make a distribution deterministic — or asks what an existing `_DISTR.ini` does, whether a given NPC is targeted by it, why a line isn't distributing, to audit or review a mod's SPID lines, or which filters and traits target which NPCs (the `F`/`M`/`U`/`T` trait codes, the `0x123~Plugin.esp` FormID form, the deterministic `!` chance). Load before writing or reading any SPID line — a misread filter silently changes who you think is targeted.
Recognize which load-order plugins and mods are generated TOOL OUTPUTS — Reqtificator (`Requiem for the Indifferent.esp`), ParallaxGen (`PGPatcher.esp` / `PG_1.esp`), DynDOLOD (`DynDOLOD.esm` / `.esp`, `Occlusion.esp`), Synthesis, TexGen, xLODGen, and NPC Plugin Chooser 2 (generated `NPC_Token.json`) — and keep their regenerated records and asset paths out of any patch you author, because the user re-runs these tools, so a frozen copy goes stale or silently breaks. Use whenever you create a patch, override or forward a record, resolve a conflict, pull a conflict tree, or study how a mod works and the winner — or a referenced mesh/texture — traces to one of these generators. Reading one is fine only when debugging an in-game problem it may have caused; otherwise don't base your work on it, and never copy its changes into a patch.