# Totk As Xlink

> 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.

- Skill: `cargocult-mods/totk-as-xlink` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add cargocult-mods/totk-as-xlink`
- Raw SKILL.md: https://api.skillmd.com/api/skills/cargocult-mods/totk-as-xlink/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: cargocult-mods (https://skillmd.com/u/cargocult-mods)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/cargocult-mods/totk-as-xlink

---


# 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

1. Start from the actor wiring. Inspect the actor pack component files for `ActorParam`, `ASInfo`, `AnimationParam`, `ELink`, `SLink`, and `XLink`.
2. 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`.
3. Check `ASInfoRef` for autoplay behavior, slot counts, and controller settings. `AutoPlayASName` often explains what starts without an explicit AI/EventFlow command.
4. Check `AnimationRef` for the animation resource project. This usually points toward the model or animation resource names used by skeletal and material animation nodes.
5. 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.
6. 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.
7. 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:

```powershell
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.

