TOTK AS/XLink
Use this skill for Tears of the Kingdom animation-sequence investigations: ASB command graphs, animation-event files, actor animation components, and the ELink/SLink/XLink routing that often fires effects and sounds around animation timing.
Vanilla RomFS Rule
Use a vanilla TOTK romfs path already supplied in the current turn or registered project guidance. Otherwise ask the user for it before inspecting game files. Treat the path as read-only; do not search unrelated folders or guess a location.
Use With
- Use
totk-toolkit first for shared file mechanics: ZSTD dictionaries, actor pack inspection, SARC/BYML helpers, and compact RSDB/component output.
- Use
totk-local-operator for token-efficient searching, inventory, and large-file summaries.
- Use this skill once the question is specifically about AS, ASB, BAEV, AnimationEvent, ELink, SLink, XLink, animation command names, or why an animation-adjacent effect or sound does or does not fire.
Investigation Workflow
- Start from the actor wiring. Inspect the actor pack component files for
ActorParam, ASInfo, AnimationParam, ELink, SLink, and XLink.
- Follow
ASRef to AS/<Actor>.root.asb.zs, then summarize commands, node count, and string references. The externally visible verbs are usually AS command names such as Wait, Open, Attack, or Sleep.
- Check
ASInfoRef for autoplay behavior, slot counts, and controller settings. AutoPlayASName often explains what starts without an explicit AI/EventFlow command.
- Check
AnimationRef for the animation resource project. This usually points toward the model or animation resource names used by skeletal and material animation nodes.
- Tie timing to BAEV.
AnimationEvent/AsNode/*.root.baev.zs belongs to ASB event nodes; AnimationEvent/Animation/*.anim.baev.zs belongs to animation names. In TOTK, BAEV is normally the meaningful animation-event timing layer.
- Trace XLink separately from ASB.
ELinkRef and SLinkRef commonly give a UserName; XLinkRef usually points to an XLink property table list. Search ELink2/SLink2 users for asset call keys and compare those keys to BAEV, gameplay actions, or actor logic.
- Cross-check action sources. BSA, AINB, and EventFlow action/query calls often request AS command names, so a command can be valid even when no visible file has a direct text link from AI to the ASB.
TKVSC-derived ASB/BAEV handling is a useful experimental reference: treat ASB and sibling BAEV as a coordinated pair, because an ASB write may need to update BAEV output too. For this skill, use that lesson for inspection and round-trip testing only. The bundled inspect_asb_summary.py remains the proven read-only starting point; do not trust TKVSC-derived ASB/BAEV writers for installable mods until they pass reparse and behavior validation.
Local Inspector
Run the bundled read-only ASB summary helper when you need a compact first pass:
python scripts/inspect_asb_summary.py --romfs "<romfs>" --actor SpObj_TimerBomb_A_01
python scripts/inspect_asb_summary.py --romfs "<romfs>" --asb "AS/TBox_Field.root.asb.zs"
python scripts/inspect_asb_summary.py --asb "<path-to-Some.root.asb>" --json
The helper prints ASB magic/version, command count, node count, parsed command names, and string-pool references grouped into likely tags, paths, and animation-like names. It is an inspector, not an editor or a full decompiler.
Interpretation Rules
- Treat ASB as the animation command graph, not as a plain list of files. A single command can traverse selectors, frame controllers, simultaneous nodes, random nodes, material animation nodes, skeletal animation nodes, and event nodes.
- Treat command names as actor-facing verbs. AI, BSA, AINB, EventFlow, and component logic usually care about these names rather than low-level node IDs.
- Treat BAEV as the timing bridge for animation events. In TOTK, ASB event nodes by themselves are not usually the final effect/sound mechanism.
- Treat ASB/BAEV editing as unproven unless the exact writer has round-tripped the target pair and the sibling file behavior is understood.
- Treat ELink and SLink users as lookup namespaces. An actor component may contain only
UserName, while the large ELink2/SLink2 product files contain the actual asset call tables.
- Treat XLink as routing/config, not as proof that a key is fired. Confirm the caller through BAEV, gameplay code data, actor logic, or observed in-game behavior when possible.
Reference
Read references/as-xlink-field-guide.md for the subsystem map, file roles, examples from vanilla actors, and common investigation recipes.
For user-facing questions about what AS can visibly do in-game, read its "Perceptible Capabilities" section.
1---2name: totk-as-xlink3description: Inspect and explain Tears of the Kingdom AS animation-sequence wiring. Use when tracing .asb.zs command graphs, .baev.zs animation events, ASRef, ASInfoRef, AnimationRef, or ELink, SLink, and XLink effect or sound routing that is tied to actor animations. Cross-reference totk-toolkit for file plumbing and totk-local-operator for compact local inspection.4---56# TOTK AS/XLink78Use this skill for Tears of the Kingdom animation-sequence investigations: ASB command graphs, animation-event files, actor animation components, and the ELink/SLink/XLink routing that often fires effects and sounds around animation timing.910## Vanilla RomFS Rule1112Use a vanilla TOTK `romfs` path already supplied in the current turn or registered project guidance. Otherwise ask the user for it before inspecting game files. Treat the path as read-only; do not search unrelated folders or guess a location.1314## Use With1516- Use `totk-toolkit` first for shared file mechanics: ZSTD dictionaries, actor pack inspection, SARC/BYML helpers, and compact RSDB/component output.17- Use `totk-local-operator` for token-efficient searching, inventory, and large-file summaries.18- Use this skill once the question is specifically about AS, ASB, BAEV, AnimationEvent, ELink, SLink, XLink, animation command names, or why an animation-adjacent effect or sound does or does not fire.1920## Investigation Workflow21221. Start from the actor wiring. Inspect the actor pack component files for `ActorParam`, `ASInfo`, `AnimationParam`, `ELink`, `SLink`, and `XLink`.232. Follow `ASRef` to `AS/<Actor>.root.asb.zs`, then summarize commands, node count, and string references. The externally visible verbs are usually AS command names such as `Wait`, `Open`, `Attack`, or `Sleep`.243. Check `ASInfoRef` for autoplay behavior, slot counts, and controller settings. `AutoPlayASName` often explains what starts without an explicit AI/EventFlow command.254. Check `AnimationRef` for the animation resource project. This usually points toward the model or animation resource names used by skeletal and material animation nodes.265. Tie timing to BAEV. `AnimationEvent/AsNode/*.root.baev.zs` belongs to ASB event nodes; `AnimationEvent/Animation/*.anim.baev.zs` belongs to animation names. In TOTK, BAEV is normally the meaningful animation-event timing layer.276. Trace XLink separately from ASB. `ELinkRef` and `SLinkRef` commonly give a `UserName`; `XLinkRef` usually points to an XLink property table list. Search ELink2/SLink2 users for asset call keys and compare those keys to BAEV, gameplay actions, or actor logic.287. Cross-check action sources. BSA, AINB, and EventFlow action/query calls often request AS command names, so a command can be valid even when no visible file has a direct text link from AI to the ASB.2930TKVSC-derived ASB/BAEV handling is a useful experimental reference: treat ASB and sibling BAEV as a coordinated pair, because an ASB write may need to update BAEV output too. For this skill, use that lesson for inspection and round-trip testing only. The bundled `inspect_asb_summary.py` remains the proven read-only starting point; do not trust TKVSC-derived ASB/BAEV writers for installable mods until they pass reparse and behavior validation.3132## Local Inspector3334Run the bundled read-only ASB summary helper when you need a compact first pass:3536```powershell37python scripts/inspect_asb_summary.py --romfs "<romfs>" --actor SpObj_TimerBomb_A_0138python scripts/inspect_asb_summary.py --romfs "<romfs>" --asb "AS/TBox_Field.root.asb.zs"39python scripts/inspect_asb_summary.py --asb "<path-to-Some.root.asb>" --json40```4142The helper prints ASB magic/version, command count, node count, parsed command names, and string-pool references grouped into likely tags, paths, and animation-like names. It is an inspector, not an editor or a full decompiler.4344## Interpretation Rules4546- Treat ASB as the animation command graph, not as a plain list of files. A single command can traverse selectors, frame controllers, simultaneous nodes, random nodes, material animation nodes, skeletal animation nodes, and event nodes.47- Treat command names as actor-facing verbs. AI, BSA, AINB, EventFlow, and component logic usually care about these names rather than low-level node IDs.48- Treat BAEV as the timing bridge for animation events. In TOTK, ASB event nodes by themselves are not usually the final effect/sound mechanism.49- Treat ASB/BAEV editing as unproven unless the exact writer has round-tripped the target pair and the sibling file behavior is understood.50- Treat ELink and SLink users as lookup namespaces. An actor component may contain only `UserName`, while the large ELink2/SLink2 product files contain the actual asset call tables.51- Treat XLink as routing/config, not as proof that a key is fired. Confirm the caller through BAEV, gameplay code data, actor logic, or observed in-game behavior when possible.5253## Reference5455Read `references/as-xlink-field-guide.md` for the subsystem map, file roles, examples from vanilla actors, and common investigation recipes.56For user-facing questions about what AS can visibly do in-game, read its "Perceptible Capabilities" section.