Audio and SLink
SLink connects gameplay events, animation actions, and property changes to sounds. Its database is SLink2/SLink2DB.szs, which contains SLink2DB.bslnk. The audio assets themselves are stored in .bars archives under Sound/Resource, including its Stream subdirectory.
This catalog was extracted from Animal Crossing: New Horizons 3.0.0. It contains 20,799 audio asset entries in 1,696 BARS files, with 7,072 distinct sound names explicitly referenced by SLink.
How SLink selects audio
Section titled “How SLink selects audio”Like ELink, SLink organizes its database into users such as furniture, characters, and UI objects. A user has named asset call tables that can play a sound or select/combine child calls through containers. Calls can be requested by game code or activated through action, property, and always triggers.
A sound asset’s RuntimeAssetName identifies the audio resource to play. SLink also supplies playback settings such as volume, pitch, delay, fade-in time, sound group, and attachment bone. The BARS file contains the sound’s metadata and audio payload; .barslist resource lists refer to BARS archives.
See the xlink2 documentation for users, triggers, and call tables, and the BARS format documentation for the resource lookup tables.
Which ID is which?
Section titled “Which ID is which?”Audio assets use a CRC32 hash of their name in the BARS lookup table. This table is sorted by hash; each entry points to an archive-local index. Every exported name was checked against its stored hash.
| Identifier | Meaning |
|---|---|
| Runtime asset name | The sound resource name, such as UI_Point_Get. |
| Name hash (CRC32) | The 32-bit name hash stored in BARS, such as 0xC8556DD8. |
| BARS index | The zero-based position in that archive’s hash/offset tables. It is not a global sound ID. |
| Call-table key | The name a particular SLink user uses to select a call, such as In. |
| Call-table GUID | The identifier for a call table within that user, such as 0x18c6896d. It is separate from the sound’s CRC32 hash. |
Use the name/hash and BARS file when locating an audio asset. Use the user and call-table key/GUID when investigating what triggers it. Archive indices may change when assets are added or removed.
Example: Nook Miles result dialog
Section titled “Example: Nook Miles result dialog”This shortened entry comes from the UI_SonkatsuResultDialog user in the decoded SLink database:
In[0x18c6896d] { EmitCount = 1 Oneshot = false NoPause = false UserFlags = 0b0 Execute = Asset { AssetName = "In" RuntimeAssetName = "UI_Point_Get" GroupName = "UI_Default" Delay = 4.0 Priority = 0.860000014 BitFlag = 0b1101 UIPanningEnable = false }}The In call selects UI_Point_Get. Its audio is in Sound/Resource/UI_SonkatsuResultDialog.bars at index 2, with name hash 0xC8556DD8. Changing RuntimeAssetName changes the selected sound; replacing the corresponding audio payload changes the recording itself.
Audio asset catalog
Section titled “Audio asset catalog”Search by sound name, hexadecimal hash, or BARS filename. All BARS paths below are relative to Sound/Resource/. Select a SLink calls count to see the users, call-table keys, and GUIDs that explicitly reference that sound. The count represents distinct user/key/GUID mappings, not how often a sound plays.
A count of 0 means there is no explicit nonblank RuntimeAssetName reference in this SLink export. It does not establish that the sound is unused: other playback paths and runtime name selection have not been exhaustively traced. @Blank is excluded because it is a placeholder rather than a sound asset.
Loading search… Showing the first 50 of 20,799 entries.
| Sound name | Name hash (CRC32) | BARS file | Index | SLink calls |
|---|---|---|---|---|
$BGM_DJ | 0x025F262D | Bgm_DJ.bars | 0 | 713 |
$Ftr_Slide | 0xD38D6360 | Furniture_Base.bars | 6 | 2397 |
$Melody_Humming_Key00 | 0x533C65F7 | Npc.bars | 58 | 90 |
$Melody_Humming_Key01 | 0x243B5561 | Npc.bars | 25 | 90 |
$Melody_Humming_Key02 | 0xBD3204DB | Npc.bars | 131 | 90 |
$Melody_Humming_Key03 | 0xCA35344D | Npc.bars | 139 | 90 |
$Melody_Humming_Key04 | 0x5451A1EE | Npc.bars | 59 | 90 |
$Melody_Humming_Key05 | 0x23569178 | Npc.bars | 20 | 90 |
$Melody_Humming_Key06 | 0xBA5FC0C2 | Npc.bars | 128 | 90 |
$Melody_Humming_Key07 | 0xCD58F054 | Npc.bars | 144 | 90 |
$Melody_Humming_Key08 | 0x5DE7EDC5 | Npc.bars | 66 | 90 |
$Melody_Humming_Key09 | 0x2AE0DD53 | Npc.bars | 31 | 90 |
$Melody_Humming_Key10 | 0x4A2754B6 | Npc.bars | 53 | 90 |
$Melody_Humming_Key11 | 0x3D206420 | Npc.bars | 44 | 90 |
$Melody_Humming_Key12 | 0xA429359A | Npc.bars | 110 | 90 |
$Melody_Humming_KeyRandom00 | 0xAF75E4D4 | Npc.bars | 117 | 90 |
$Melody_Humming_KeyRandom01 | 0xD872D442 | Npc.bars | 152 | 90 |
$Melody_Humming_KeyRandom02 | 0x417B85F8 | Npc.bars | 49 | 90 |
$Melody_Humming_KeyRandom03 | 0x367CB56E | Npc.bars | 39 | 90 |
$Melody_Humming_KeyRandom04 | 0xA81820CD | Npc.bars | 113 | 90 |
$Melody_Humming_KeyRandom05 | 0xDF1F105B | Npc.bars | 155 | 90 |
$Melody_Npc_Key00 | 0xD7A4C25E | Npc.bars | 151 | 45 |
$Melody_Npc_Key00_Steps | 0x9045B631 | Npc.bars | 94 | 45 |
$Melody_Npc_Key01 | 0xA0A3F2C8 | Npc.bars | 107 | 45 |
$Melody_Npc_Key01_Steps | 0x3632BD85 | Npc.bars | 38 | 45 |
$Melody_Npc_Key02 | 0x39AAA372 | Npc.bars | 43 | 45 |
$Melody_Npc_Key02_Steps | 0x07DAA718 | Npc.bars | 6 | 45 |
$Melody_Npc_Key03 | 0x4EAD93E4 | Npc.bars | 54 | 45 |
$Melody_Npc_Key03_Steps | 0xA1ADACAC | Npc.bars | 108 | 45 |
$Melody_Npc_Key04 | 0xD0C90647 | Npc.bars | 148 | 45 |
$Melody_Npc_Key04_Steps | 0x640A9222 | Npc.bars | 70 | 45 |
$Melody_Npc_Key05 | 0xA7CE36D1 | Npc.bars | 112 | 45 |
$Melody_Npc_Key05_Steps | 0xC27D9996 | Npc.bars | 135 | 45 |
$Melody_Npc_Key06 | 0x3EC7676B | Npc.bars | 45 | 45 |
$Melody_Npc_Key06_Steps | 0xF395830B | Npc.bars | 169 | 45 |
$Melody_Npc_Key07 | 0x49C057FD | Npc.bars | 52 | 45 |
$Melody_Npc_Key07_Steps | 0x55E288BF | Npc.bars | 63 | 45 |
$Melody_Npc_Key08 | 0xD97F4A6C | Npc.bars | 154 | 45 |
$Melody_Npc_Key08_Steps | 0xA3AAF856 | Npc.bars | 109 | 45 |
$Melody_Npc_Key09 | 0xAE787AFA | Npc.bars | 116 | 45 |
$Melody_Npc_Key09_Steps | 0x05DDF3E2 | Npc.bars | 2 | 45 |
$Melody_Npc_Key10 | 0xCEBFF31F | Npc.bars | 147 | 45 |
$Melody_Npc_Key10_Steps | 0x5CEFB6AF | Npc.bars | 65 | 45 |
$Melody_Npc_Key11 | 0xB9B8C389 | Npc.bars | 125 | 45 |
$Melody_Npc_Key11_Steps | 0xFA98BD1B | Npc.bars | 172 | 45 |
$Melody_Npc_Key12 | 0x20B19233 | Npc.bars | 17 | 45 |
$Melody_Npc_Key12_Steps | 0xCB70A786 | Npc.bars | 142 | 45 |
$Melody_Npc_KeyRandom00 | 0xCDA99D63 | Npc.bars | 146 | 45 |
$Melody_Npc_KeyRandom00_Steps | 0x71390423 | Npc.bars | 77 | 45 |
$Melody_Npc_KeyRandom01 | 0xBAAEADF5 | Npc.bars | 130 | 45 |
SLink calls
| User | Call-table key | GUID |
|---|
Downloads
Section titled “Downloads”- Complete audio asset catalog (JSON): name, hash, BARS file, archive index, and SLink call count.
- SLink references (JSON): sound names mapped to
[user, call-table key, GUID]entries, including all 90,326 distinct mappings.
These downloads contain identifiers and references only. Each BARS asset is listed separately, including assets whose names may appear in more than one archive.
Reading the SLink database
Section titled “Reading the SLink database”Unpack SLink2/SLink2DB.szs to obtain SLink2DB.bslnk, then use xlink2 with the Park game profile:
.\xlink.exe -i SLink2DB.bslnk -o SLink2DB.txt --game Park --output-type TextConvert the edited text back to binary with:
.\xlink.exe -i SLink2DB.txt -o SLink2DB.bslnk --game Park --output-type BinaryRepack the resulting binary into SLink2DB.szs for the game to load it.