> For the complete documentation index, see [llms.txt](https://wiki.redmodding.org/cyberpunk-2077-modding/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wiki.redmodding.org/cyberpunk-2077-modding/modding-guides/quest/adding-a-custom-voiceline-to-a-scene.md).

# Adding a custom voiceline to a scene

## Summary

**Created:** September 02 2026 by [@chromoxolon](https://www.nexusmods.com/profile/Chromoxolon)\
**Last documented update:** September 02 2026 by [@chromoxolon](https://www.nexusmods.com/profile/Chromoxolon)

This article will cover all the necessary steps needed to add a custom voice line you created to a scene, replicating the base game logic, meaning no scripting is necessary.\
\
By the end of this article you will know how to convert a **`.wav`** file to **`.wem`** using Wwise and how to successfully integrate it in your scene.

## Requirements

**This article assumes that:**

1. You have a basic understanding of scenes and scene actors.
2. You know how to create and add Dialog lines to a scene.
3. You know how to add a scnDialogLineEvent to a section node.

The points above will not be covered, this article focuses on custom audio specifically.

**Before we begin there are also 3 other requirements:**

1. Having Wwise installed
2. Your custom voiceline of choice in **`.wav`** audio format
3. [ArchiveXL](https://wiki.redmodding.org/cyberpunk-2077-modding/for-mod-creators-theory/core-mods-explained/archivexl)<br>

**But why?**\
Wwise is the program responsible for playing all the sounds in the game. You can freely download it [here](https://www.audiokinetic.com/en/download/), it will ask you to create an account. We need Wwise because we will use it to convert your voice line to **`.wem`** , which is an audio format that the game can understand and play.

Your voice line also has to be in **`.wav`** because Wwise only imports files in that format. If your voice line is in another audio format like **`.mp3`** you will need to convert it to **`.wav`** first.

{% hint style="info" %}
**Tip:** If you are recording the custom voice lines yourself, you should generally record/export directly in **`.wav`**. Most recording software should support this option, saving you an extra conversion step, yay!
{% endhint %}

So to summarize we will need Wwise to convert **`.wav`** files to **`.wem`** files, so the game can play them!

Once you have those three requirements, we are ready to proceed!

## Converting .wav to .wem files through Wwise

If your **Wwise** installation was successful you can find the program in your system as **Wwise Launcher**. Let's go ahead and launch it.

<figure><img src="https://1427525421-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4gzcGtLrr90pVjAWVdTc%2Fuploads%2FjGtjwNYWQS14B713KJO5%2FScreenshot%202026-09-01%20131553.png?alt=media&amp;token=c9f88861-a3c4-4a3d-895b-9134eb164b4d" alt=""><figcaption></figcaption></figure>

Once open you will notice that the program window is called **AudioKinetic Launcher**. Go ahead and click on the tab called **`Wwise`.** From here you can install and launch multiple different versions of Wwise without them conflicting with each other. For our particular use case, we specifically need version **2023.1.14.** Select that version from the dropdowns and click **`Install`**.

{% hint style="warning" %}
**info:** This specific version is a hard requirement as it is the one currently used in the game. If you use any other version your audio file might not be recognized at all. Credit goes to **@arman\_iii** for finding this out.
{% endhint %}

<figure><img src="https://1427525421-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4gzcGtLrr90pVjAWVdTc%2Fuploads%2FMvykziaJfOeQlSUgYBbp%2FScreenshot%202026-09-01%20134844.png?alt=media&amp;token=b08c0f3a-397f-4107-b854-7038e542181f" alt=""><figcaption></figcaption></figure>

You will now see some checkbox options. Leave everything as default and click **`Next`**.

<figure><img src="https://1427525421-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4gzcGtLrr90pVjAWVdTc%2Fuploads%2FRsjBoGKjN5g705YM83Oe%2FScreenshot%202026-09-01%20140831.png?alt=media&amp;token=0c61da83-55ca-45a4-ba77-5062c702388e" alt=""><figcaption></figcaption></figure>

You will be presented with an option to choose plugins. Once again leave as default and click **`Install`**.

<figure><img src="https://1427525421-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4gzcGtLrr90pVjAWVdTc%2Fuploads%2FIyhwcSwNzdnbOv9Njr4T%2FScreenshot%202026-09-01%20141035.png?alt=media&amp;token=6d7bdad7-d690-4a91-9ffd-d79c5c38a156" alt=""><figcaption></figcaption></figure>

Version **2023.1.14** will now install and once ready we can go ahead and launch it.

<figure><img src="https://1427525421-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4gzcGtLrr90pVjAWVdTc%2Fuploads%2FU7K4Qreadc2FJurfEF61%2FScreenshot%202026-09-01%20141405.png?alt=media&amp;token=0565dbdd-92fd-4480-8341-b7199ef9f8ee" alt=""><figcaption></figcaption></figure>

Now we have successfully launched Wwise for the first time! You will be greeted by a project launcher window. Let's go ahead and click the **`New...`** button.

<figure><img src="https://1427525421-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4gzcGtLrr90pVjAWVdTc%2Fuploads%2FCNR8e4h1oFZTHHOzsH32%2FScreenshot%202026-09-01%20142427.png?alt=media&amp;token=4e5804a2-09f1-48e6-b77a-a25bd69715af" alt=""><figcaption></figcaption></figure>

Here we will name our project whatever we want, i named mine **`cyberpunkwav2wem`** for example. You can also change the location of your project if you so desire, although it is not necessary. Leave everything else as default and press the **`OK`** button.

<figure><img src="https://1427525421-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4gzcGtLrr90pVjAWVdTc%2Fuploads%2FSUCWSXq9AKWy2h3KXhvr%2FScreenshot%202026-09-01%20143332.png?alt=media&amp;token=38651793-a38b-4959-975a-ceec14bf3af5" alt=""><figcaption></figcaption></figure>

Now we are going to select **`Project`** in the top menu bar, then open **`Project Settings`.**

<figure><img src="https://1427525421-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4gzcGtLrr90pVjAWVdTc%2Fuploads%2Fa3Pi3skSQ586TIUp0nNx%2FScreenshot%202026-09-01%20194031.png?alt=media&amp;token=5c217db1-c76b-44d0-99cc-1facfb0868c4" alt=""><figcaption></figcaption></figure>

In the **Project Settings** window select the **`Source Settings`** tab and click the box next to the Default Conversion Settings bar.

<figure><img src="https://1427525421-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4gzcGtLrr90pVjAWVdTc%2Fuploads%2FozdpEqmtcK9FX3c8h6LV%2FScreenshot%202026-09-01%20194940.png?alt=media&amp;token=90ad4abd-d34e-4a1d-a408-b15fc729bc55" alt=""><figcaption></figcaption></figure>

Here we will select the **`Vorbis Quality High`** option and click **`OK`**

<figure><img src="https://1427525421-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4gzcGtLrr90pVjAWVdTc%2Fuploads%2F02HzzrHOFuQuwUlPaRSs%2FScreenshot%202026-09-01%20195138.png?alt=media&amp;token=99e7fd7b-c580-402d-b3c2-df72d8398963" alt=""><figcaption></figcaption></figure>

As you can see the Default Conversion Settings have now successfully changed to **Vorbis Quality High**. We can now click **`OK`** to close the window.

<figure><img src="https://1427525421-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4gzcGtLrr90pVjAWVdTc%2Fuploads%2FAfEq5NccxVNkT5G9Kpxr%2FScreenshot%202026-09-01%20200321.png?alt=media&amp;token=9056c6b1-4205-4d49-b30b-9cd24bb92bb1" alt=""><figcaption></figcaption></figure>

Now we will once again select **`Project`** in the top menu bar, then select **`Import Audio Files`.**

<figure><img src="https://1427525421-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4gzcGtLrr90pVjAWVdTc%2Fuploads%2FYFZWb4rAl6gRg3K8sKiF%2FScreenshot%202026-09-01%20201156.png?alt=media&amp;token=024635cb-eed7-4fa1-a103-c26ca875dca9" alt=""><figcaption></figcaption></figure>

Make sure the **`Import as:`** drop down is set to **Sound SFX**. Then you can click the **`Add Files..`**  button and select the **`.wav`** audio files you want to import. You can import one or several. Before clicking the import button you can preview your chosen files as shown by the green box below. Once you are ready to proceed click the **`Import`** button.

<figure><img src="https://1427525421-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4gzcGtLrr90pVjAWVdTc%2Fuploads%2FqFBxFdp1b8mm8XZaz1nN%2FScreenshot%202026-09-01%20202419.png?alt=media&amp;token=43a2f34e-47f4-4f41-9b76-d3fc14db43ea" alt=""><figcaption></figcaption></figure>

Now in the **Project Explorer** panel located in the leftside of the screen select the **`ShareSets`** tab. In that tab select **`Vorbis Quality High`** from the list, it should open a panel with the same name. In that panel make sure:

1. **Channels** is set to **Mono**
2. **Sample rate** is set to **48000**
3. **Format** is set to **Vorbis** (it likely already is)

Also all the files we previously imported should also appear in the Audio Source Table confirming you did everything correctly so far. Once everything is ready you can click the **`Convert`** button.

<figure><img src="https://1427525421-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4gzcGtLrr90pVjAWVdTc%2Fuploads%2FwVX0KY9D56VhpA0wji7Y%2FScreenshot%202026-09-01%20215657.png?alt=media&amp;token=08a62e64-94c2-4218-9a93-1002243aee46" alt=""><figcaption></figcaption></figure>

A small window will popup, just press the **`Convert`** button once more.

<figure><img src="https://1427525421-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4gzcGtLrr90pVjAWVdTc%2Fuploads%2FWmH4UY4OmWtmnQo5KfEg%2FScreenshot%202026-09-01%20223013.png?alt=media&amp;token=00b743f6-2d84-4a24-9ab4-e9d8aa21443c" alt=""><figcaption></figcaption></figure>

You have now successfully converted your **`.wav`** file to **`.wem`** ! To find the converted files we can open up windows explorer and navigate to your projects directory, likely:

```
C:\Users\YourUser\Documents\WwiseProjects\YourProjectName\.cache\Windows\Voices\English(US)
```

Just swap **`YourUser`** for your actual windows username and **`YourProjectName`** for the project name you chose in the beginning.&#x20;

{% hint style="info" %}
**Reminder:** If you changed the default project directory when creating the project you will have to look there instead.
{% endhint %}

<figure><img src="https://1427525421-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4gzcGtLrr90pVjAWVdTc%2Fuploads%2FuidiQeMlUNq7EYeHf1pe%2FScreenshot%202026-09-01%20230437.png?alt=media&amp;token=5a6af3a5-43ee-4cab-b0dc-c834e7df1efe" alt=""><figcaption></figcaption></figure>

Copy the **`.wem`** files you converted, we will soon paste them in WolvenKit.&#x20;

{% hint style="warning" %}
**Info:** Any **`.dat`** files in the folder can be ignored.
{% endhint %}

You are now finally done with Wwise. Before you close the program make sure to save your project in case you want to create more **`.wem`** files in the future. This way you can reuse the settings we selected. You can re-open your project at any time, import new **`.wav`** files and quickly convert them to **`.wem`** .

On to wolvenkit now!

## Adding your .wem file to the scene

In your wolvenkit project you should create a folder for voiceovers, usually called **VO**. It would typically be under:

```
archive\mod\yourprojectname\localization\en-us\vo\
```

This is where we are our **`.wem`** audiofiles are going to live.

<figure><img src="https://1427525421-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4gzcGtLrr90pVjAWVdTc%2Fuploads%2FZ6xIZtf3RRqExh8DxLq1%2FScreenshot%202026-09-02%20140958.png?alt=media&amp;token=ec0eb72c-d376-4316-b5ec-dca2cd3a7dec" alt=""><figcaption></figcaption></figure>

Once you have created that folder, hover it with your mouse and click the yellow folder icon button. This will open the windows file explorer in that location.&#x20;

<figure><img src="https://1427525421-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4gzcGtLrr90pVjAWVdTc%2Fuploads%2FTpnrqcwlgjzAhmSX2MIX%2FScreenshot%202026-09-02%20141627.png?alt=media&amp;token=23d1b4a3-8164-4e0a-b753-759e9c31c664" alt=""><figcaption></figcaption></figure>

In the file explorer paste the **`.wem`** files you previously converted or copied. The file should successfully appear in your project as shown below.

<figure><img src="https://1427525421-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4gzcGtLrr90pVjAWVdTc%2Fuploads%2F37fgiyvu25O5e1TzOtFg%2FScreenshot%202026-09-02%20142223.png?alt=media&amp;token=3d6f5d3f-d048-424b-bc29-084951742121" alt=""><figcaption></figcaption></figure>

We will now create a **`voiceovermap.json`** file.&#x20;

{% hint style="info" %}
**Info:** This file is responsible for connecting the dialog lines in your scene to their corresponding `.wem` audio files. This means that when the game plays a specific dialog line event from your scene, it will automatically fetch your corresponding audio file voice line and play it alongside too.
{% endhint %}

Select **`File`** in the tool bar, then select **`+New File`** from the dropdown menu. This will open a popup window. In the popup window select a **`.json`** file (you can use the search bar to find it) and click **`Create`.**

<div><figure><img src="https://1427525421-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4gzcGtLrr90pVjAWVdTc%2Fuploads%2FIdTHdKioVnse4kj2EscK%2FScreenshot%202026-09-01%20231258.png?alt=media&amp;token=92eae633-36c6-42c2-ac43-a6fa5bc46c7e" alt=""><figcaption></figcaption></figure> <figure><img src="https://1427525421-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4gzcGtLrr90pVjAWVdTc%2Fuploads%2Fm5qOhpSFhenpoJKa7FLi%2FScreenshot%202026-09-01%20231921.png?alt=media&amp;token=22271081-18b6-4cfe-9fe5-d68fd2a1574f" alt=""><figcaption></figcaption></figure></div>

You will now see a **`.json`** file in your project explorer, make sure to place it in the **VO** folder we recently created and name it something recognizable such as **`voiceovermap.json`**.&#x20;

<figure><img src="https://1427525421-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4gzcGtLrr90pVjAWVdTc%2Fuploads%2Fx8gUZmVURHJ3xwS3SA4j%2FScreenshot%202026-09-02%20172732.png?alt=media&amp;token=1a237b27-fddc-408e-9379-24de038a3cc9" alt=""><figcaption></figcaption></figure>

Go ahead and open the **`.json`** file and click on the yellow add sign. This will open a popup window with a list. From the list, choose **`locVoiceoverMap`** then click **`Create` .**

<div><figure><img src="https://1427525421-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4gzcGtLrr90pVjAWVdTc%2Fuploads%2FkmCD6RaXH9E0h3hQ7bgb%2FScreenshot%202026-09-01%20232940.png?alt=media&amp;token=4168b26c-2b34-47e5-9060-87376de1701a" alt=""><figcaption></figcaption></figure> <figure><img src="https://1427525421-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4gzcGtLrr90pVjAWVdTc%2Fuploads%2FQGGDwOk6lxBbSfv6pWgc%2FScreenshot%202026-09-01%20233121.png?alt=media&amp;token=c5115e17-6e07-4230-afd1-283c07f199bb" alt=""><figcaption></figcaption></figure></div>

Then select the newly created entries line and click the add sign once more.

<figure><img src="https://1427525421-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4gzcGtLrr90pVjAWVdTc%2Fuploads%2Fqa9Fn1WouJrw257rlFfW%2FScreenshot%202026-09-01%20233822.png?alt=media&amp;token=e1f00464-90a5-48be-a4a9-3af7c98a6eb5" alt=""><figcaption></figcaption></figure>

You will now have your first entry.

Every entry has 3 properties:

1. **femaleResPath** (path to the corresponding female V **`.wem`**)
2. **maleResPath** (path to the corresponding male V **`.wem`**)
3. **stringId** (id of the scene line where you want your voice line to play)

<figure><img src="https://1427525421-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4gzcGtLrr90pVjAWVdTc%2Fuploads%2FbtNta5iC0RyhNxa7aBt2%2FScreenshot%202026-09-01%20234447.png?alt=media&amp;token=da2e98c6-a36d-4a52-a6cb-6046fb0efdee" alt=""><figcaption></figcaption></figure>

We will start by filling the ResPaths which are the paths to your **`.wem`** audiofiles. To make it easier for you, you can right click your **`.wem`** file and **`copy the relative path to game file`**.

<figure><img src="https://1427525421-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4gzcGtLrr90pVjAWVdTc%2Fuploads%2FJskHdjPycFVMd0AXRtqU%2FScreenshot%202026-09-02%20143116.png?alt=media&amp;token=23e5078d-524f-4aae-bcda-840619752f0e" alt=""><figcaption></figcaption></figure>

If you recorded separate voice lines for both female and male V then you can paste their respective paths in **`femaleResPath`** and **`maleResPath`**. If you just recorded one voice line and want it to play regardless of gender or you just want to test it for now then you can paste the same file path in both. In the example below, the same one is being used.

<figure><img src="https://1427525421-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4gzcGtLrr90pVjAWVdTc%2Fuploads%2FM2y8zcbtA77FCUY9jyUo%2FScreenshot%202026-09-02%20143022.png?alt=media&amp;token=27fc0bfe-018f-4704-a632-1abfddbb904d" alt=""><figcaption></figcaption></figure>

Now we must fill the **`stringId`**. This is the **`locstringID`** from the scene line you want to associate your audio with. You can find it by opening your scene, going to the **`Dialog`** tab and expanding the table in the following order:

1. screenplayStore
2. lines
3. your line of choice (which is a scnscreenplayDialogLine)
4. locstringID (this is what you want to copy)

<figure><img src="https://1427525421-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4gzcGtLrr90pVjAWVdTc%2Fuploads%2FQALPcEaQSMUouz5ZIIJV%2FScreenshot%202026-09-02%20144139.png?alt=media&amp;token=8715984d-7424-4746-ba87-1e6c9a05d22e" alt=""><figcaption></figcaption></figure>

Go ahead and paste that in the **`stringId`** of the **`voiceovermap.json`**.

<figure><img src="https://1427525421-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4gzcGtLrr90pVjAWVdTc%2Fuploads%2F4PLzWBGm3HV76eYrItzH%2FScreenshot%202026-09-02%20144931.png?alt=media&amp;token=8041a646-2c88-4c48-82cf-6e1f3674d1d4" alt=""><figcaption></figcaption></figure>

\
We are almost there! We just need to register the **`voiceovermap.json`** in your project's **`archive.xl`** file.

```json
# resources\yourprojecthere.archive.xl
# ...
localization:
  # ...
  vomaps:
    en-us: mod\yourprojecthere\localization\en-us\vo\voiceovermap.json

```

{% hint style="warning" %}
**Remember:** The path and name of the **`.json`** file must be consistent with what you have in your project.
{% endhint %}

In case you don't have an **`archive.xl`** file, one can be created by selecting **`File`** in the tool bar, then select **`+New File`** from the dropdown menu. Select **`ArchiveXL`** in the category and click the **`create`** button.

<div><figure><img src="https://1427525421-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4gzcGtLrr90pVjAWVdTc%2Fuploads%2FIdTHdKioVnse4kj2EscK%2FScreenshot%202026-09-01%20231258.png?alt=media&amp;token=92eae633-36c6-42c2-ac43-a6fa5bc46c7e" alt=""><figcaption></figcaption></figure> <figure><img src="https://1427525421-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4gzcGtLrr90pVjAWVdTc%2Fuploads%2FuJiRpiFoqXLxXckf2Sqh%2FScreenshot%202026-09-02%20145725.png?alt=media&amp;token=5268575d-1301-4c03-a88d-73e8043c6406" alt=""><figcaption></figcaption></figure></div>

\
**Congratulations!!** Your custom voiceline is successfully registered and it can now be played! Whenever a **scnDialogLineEvent** plays your line, it will now also play your custom voice line alongside!!


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://wiki.redmodding.org/cyberpunk-2077-modding/modding-guides/quest/adding-a-custom-voiceline-to-a-scene.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
