Cyberpunk 2077 SoundDB
Previously known as "Sound Explorer".
Welcome to v2 of SoundDB, a community project designed to make it easy to search and explore the audio used in Cyberpunk 2077.
This website is created and maintained by Zhincore, with support from the Red Modding community. If you need help or want to report a bug, please do so on the Discord server, preferably in the #audio
channel.
Note: This version is still in development. Please bear with me.
TODO
You don't need to report the following missing features:
- Helper search buttons like the ones on GitHub issues
API
API is available for your own applications, documentation is available at https://sounddb.zhincore.eu/.
Trivia
Did you know that I (Zhincore) wrote my bachelor thesis about SoundDB? It's available to read on my GitLab if you want to know more about the behind-the-scenes and how stuff works, including the description of audio data in Cyberpunk 2077 and how it's used here.
Advanced Searching
Currently, this website uses Tantivy's default Query Parser.
You can read more at the link above. Here’s a simpler summary:
Note: In the near future, SoundDB will use a custom parser, but I will try to keep most of the semantics similar.
Syntax
A search query consists of terms. A term is a word, or multiple words in quotes. For example, Johnny Silverhand
are two separate terms, whereas "Johnny Silverhand"
is a single term.
A term can also be prefixed with a field name, e.g., music:true
or text:"impressive cock"
. Available fields are listed below.
The following operators are available, use them to make your searches smarter:
Operator | Description | Examples |
---|---|---|
AND , + |
Terms on both sides are required (default) | music AND q103 |
OR |
Either term is required | Johnny OR Alt |
NOT , - |
The following term must not be present | NOT Jackie , +friend -jackie |
IN |
An item from the list must be present in a field | hash: IN [1 2 3] |
* |
Find words starting with the term (use quotes) | "Cyberp"* |
^ |
Boost the importance of a term (or reduce it) | johnny^5 silverhand^0.1 |
The parser defaults to the AND
operator between terms.
Available Fields
Each search category has different fields available, see below.
Sounds
Field | Description | Example values |
---|---|---|
hash * |
ID / hash of the sound | 0 |
music |
Whether the sound is identified as music | true , false |
stream_type |
Stream type of the sound | GENERATED , EXTERNAL_SOURCE , PRELOADED , PREFETCH_STREAMING , STREAMING |
delay |
Delay or range before sound is played | 100 , 200-6000 |
opuspak |
Numeric index of .OpusPak containing the sound | 2 |
generator |
Name of generator for this sound | SILENCE , VOICE_RECEIVE_2 , SINE |
filename |
Filename of the sound or its opuspak | "sfx_container_2.opuspak" , "93298342.wem" |
bank * |
Name of the bank defining this sound | cp_music , vo |
embedded_in |
Name of the bank the sound is embedded in | cp_music , sfx_container |
event * |
Name of the event playing this sound | q307_09_cutscene_intro_alone |
events.<ACTION> * |
Name of the event performing given action on the sound | events.PLAY:q307_09_cutscene_intro_alone , events.STOP:q307_09_cutscene_intro_alone |
tag * |
Tag of the event playing this sound | music , ono , v |
* Fields marked with an asterisk are searched by default when no specific field is provided for a term.
Events
Field | Description | Example values |
---|---|---|
hash * |
ID / hash of the event | 0 |
name * |
Name of the event | q307_09_cutscene_intro_alone |
stopped_by |
Name of the event stopping this event | mus_mq002_scav_STOP_silent |
tags * |
Tag of the event | cp_music , vo |
sound * |
Hash of the sounds this event plays | 0 |
set |
Key or value of a switch this event sets | q105_bd_netrunner_kill , q105_bd_netrunner_kill_start |
radio * |
ID or name of the radio this event is used by | "91.9 Royal Blue Radio" |
track * |
Name of the song played by this event on radio | "John McLaughlin - Dark Prince" |
* Fields marked with an asterisk are searched by default when no specific field is provided for a term.
Objects
Field | Description | Example values |
---|---|---|
id * |
ID of the tweak of this object | Items.Preset_Dildo_Stout |
name * |
Display name of the object | "Sir John Phallustiff" |
audio * |
ID of the cooked_metadata of this object | w_melee_001_katana |
event * |
Name of the sound event used by this object | w_melee_katana_impact_flesh |
* Fields marked with an asterisk are searched by default when no specific field is provided for a term.
Radios
Field | Description | Example values |
---|---|---|
id * |
ID of the tweak of this radio | RadioStation.Impulse |
name * |
Display name of the radio | "99.9 Impulse" |
event * |
Name of the sound event used by this radio | mus_radio_14_impulse_djset |
track * |
Name of the song played by this radio | "John McLaughlin - Dark Prince" |
* Fields marked with an asterisk are searched by default when no specific field is provided for a term.
Subtitles
Field | Description | Example values |
---|---|---|
id * |
String ID of the subtitle | 0 |
path * |
Path to the subtitle JSON | mq018_01_call.json |
scene * |
Path to the scene file used by this subtitle | mq018_01_call.scene |
actor |
Actor saying the line | V , Nancy |
adressee |
Name of the actor being addressed | Johnny , Judy |
context |
Context of the line in a scene | Vo_Context_Quest |
expression |
I don't even know | Vo_Expression_Phone |
female |
Female (default) variant of the line | "Guess what? I tried that." |
male |
Male variant of the line, if any | |
subtitle * |
Either variant of the line | "Guess what? I tried that." |
voiceover * |
Path to the audio of the line | nancy_mq018_f_1a94ecd22644d000.wem |
sublang |
Mothertongue used in the line | jpn , mex , rus |
* Fields marked with an asterisk are searched by default when no specific field is provided for a term.