top of page

How to make sound mods in LoL

Video tutorial

This is simply a different way to present the same information, in case some of you prefer to actually see the process done.



 

Introduction

Hello there and welcome! My name is JesusMessiah, and today I would like to show all of you prospective modders how sound modding in League of Legends is performed. Sound modding, in general, is less intimidating than making your own skin, so I would say it's a great place to start your modding adventure! This is how I started out, too, as my very first mod was an audio mod. Here I'll show you how to do it yourself and, hopefully, convince you that it's not black magic. Good luck!

 

Getting started

1. Required tools

Tools you always need for modding:

Obsidian - For unpacking League's .wad files

LCSManager - For creating and injecting your modded files


Tools required for sound modding:

BNK Extract - For inspecting and changing League's sounds

Audacity - For editing your audio files

Wwise 2016 - For converting your audio files to the file format LoL uses

Foobar2000 + League plugin - If you want to convert League's files to a normal file type. Optional

Vo Helper - For easily converting your voice-over to work on multiple regions. Optional


2. Staying organized

Dedicate a special workspace

While this, obviously, isn't required in any shape or form, I recommend keeping a tidy digital workspace. What I personally like to do, is to have a special folder on my hard drive called "My mods". Inside, I always create a new folder for a specific mod I'm making, and inside that one, a special folder called "Audio". In there, I like to make a distinction between SFX and Voice-overs as well. Also create a folder separate from "my mods", which will only be used to store files extracted with Obsidian. I simply created a folder called "extracted files" inside Obsidian's install directory.

Basically, the more folders you have, the more specific the file path, the less likely it is you will end up confused in your own File Explorer.


 

Preparation

1. Acquiring the new sound you want in-game

The first real step and already you are on your own. Not really, but you do have to have an idea for a mod first. Once you do, and you know what sounds you want to replace and for which champion, you still need to get those sounds. How you get them is up to you, and it wholly depends on what you want to do. Perhaps you can simply find them by googling, maybe you can get them from a Youtube video, or maybe you can rip them from a game. Once you do have your new audio files, the proper modding can commence.


2. Extracting League's files with Obsidian

Now that you have chosen your champion, open up Obsidian, then click on "File" and "Open". Now navigate to your League's install folder, which usually is under C:\Riot Games\League of Legends. From there, open the folder "Game", then "DATA", then "FINAL" and then "Champions". It should look like this:

Locate the name of the champion you've chosen. Note, however, that while the majority of the champions are named the same in-game as here, there is an exception! Wukong is named MonkeyKing. Pretty sure this is the only one.

For the purpose of this tutorial, we will make a sound mod for Kha'Zix, but it works for him the same as for any other champion. Once you've located your champion on the list, you'll notice there are two files for them - "(Name).wad.client" and "(Name).en_US.wad.client". If instead of en_US you have something else, like pl_PL or whatever, this just signifies which language you have your League client in. All the main files for a champion are stored in the "(Name).wad.client" file, but their voice-overs are stored in the "(Name).en_US.wad.client". That's why if you intend to make a voice-over be wary of your client's language - it will only extract the voice-over in your set language. But don't worry you can make a voice-over for any and all languages easily! But we will get to that later.

If you only want to edit the SFX, simply open the (Name).wad.client file, however, if you wish to edit the voice-over, you will need to open both of the files, not just the (Name).en_US.wad.client. Once you have them open in Obsidian, you want to do the following:

- For (Name).wad.client: Select the same stuff as on the screenshot, and then click on File -> Extract Selected, and choose your preferred destination. Please note: you have to select skin0.bin if you are editing the default skin, if you are editing a different skin, then you need to select the appropriately named bin file.

- For (Name).en_US.wad.client: simply click on File -> Extract all, then choose your preferred destination, it can be the same as for the previous file if you want.


 

Editing and converting your audio files

Editing your sound files using Audacity

Now, it's time to prepare your custom sounds for their implementation into League. Launch Audacity and import your sound file into it (if you have a lot of files, e.g. a lot of new voice lines, you'll have to repeat the following process for every file)

For now, I have imported a voice line belonging to Kars, ripped from JoJo ASBR. My Audacity looks like this:


As a golden rule, you should strive to keep the custom sound about the same length as the original sound. This is most important for SFX, less so for voice-overs. In the case of the latter, the game will play out the voice to the end anyway, so if it's longer than the original then it will simply last longer. Which is fine by itself, but if that voice line is supposed to play during an ability, then it may be weird to have it play much longer than the ability's duration. However, in the case of the former, the SFX, if the sound is too long the game will cut it short, if it's too short, then it might not blend properly, so in both cases it will sound weird. If you are not sure how long is the sound effect you want to replace, you can wait until we get to using BNK Extract later in the tutorial and then come back to this section. If you, however, know the duration and/or you are focusing on the voice-over, then continue reading this section.

Whether you just want a specific part from your sound file, the track has silent, unnecessary parts, or whatever else might be the reason, what you have to do is trim it. Left-click on the start of the part you want to cut, then right-click and split clip. Then, left click and the end of the part you want to cut, then right-click and split clip again. Now you have a part of your found split from the rest. Click on it, then press delete. Remember to align the rest of the timeline, so that everything begins at 0.0 and doesn't have any gaps in between. The GIF below shows this process:

After you are done trimming your file, there is one more thing to do. Generally speaking, League's raw audio files are pretty loud, so our clip will have to match them in volume. In most cases, the volume of our clip will have to be increased. As a rule of thumb, you can first try increasing it by 5 dB and see (hear?) how it sounds. This is, unfortunately, quite a varied process, and it depends on your original sound file. For example, something ripped from a game won't need its volume increased by too much, but something, say taken from a Youtube video, might. So experiment until it sounds right. The gauge to adjust the volume is under the Effects tab on the track:

Once that's done, all you have to do is go to File -> Export -> Export as WAV, then select your preferred destination. I also advise you to name the file accordingly. For example, if you are doing SFX, then name it for what you want to use this sound for, e.g. "Recall" or "Ult". If you are doing voice lines, what I like to do is type out what I hear in the voice line. If I hear, say, "I'm Batman", then I'll name the file "I'm Batman". Just don't make the name too long.

Remember to repeat the process for every file you have!


Converting your edited files with Wwise

Now has come the time to convert all of our .wav files into .wem files, which is the format League uses for all its sound. To achieve that, open your Wwise Launcher. Go to the tab "Wwise". From there, click on the Install button and choose the 2016 version. If it gives you a choice, the one I'm using is "2016.2.6.6153" You might have to create an account for it. If you are annoyed by such practices, just create a throwaway email for this kind of stuff, as I did. Anyway, once you have the 2016 version installed, open it. We are using the 2016 version not because we live in the past and can't move on, but because Riot Games lives in the past and can't move on. In other words, LoL uses this specific version of Wwise and so we have to as well.

First, it's gonna ask you to create a new project. Do so, name it however you want. Next, you will receive a pop-up that you are not operating on a full license. Ignore this, of course. The first thing you need to do once inside Wwise, is to head over to Project -> Project Settings -> Source Settings, then change the Default Conversion Settings to "Vorbis Quality High". It's crucial to do so before importing any files. The GIF below shows you how to do it:

Then, click on Project -> Import Audio Files. A window will pop up, giving you an option to either import files or folders. If you have a lot files, categorized under different folders, then click add folders and select the parent folder. Wwise will automatically detect every file in every folder under your selected folder. The GIF below visualizes this:

Now just go to Project -> Convert All Audio Files. Click Ok. To quickly find your converted files, go to Project -> File Manager, then right-click on the displayed file path and click Open Containing Folder. a File Explorer window will pop up. your converted files are in .cache\Windows\SFX. I recommend copying all those files into the original folder you imported into Wwise. You can now also close Wwise.


 

Importing your sound files into League's files

How to open League's audio files using BNK Extract

This section will have parts that differ between SFX and Voice-over editing.

What you want to do first is open up the BNK Extract (file is simply named gui.exe)

You'll see three "select" buttons on the top. The bin file is the same for both SFX and voice-over, that's why I made you all extract the bin file from Obsidian at the beginning of the tutorial, no matter what you are editing. Now, click the "select bin file" button. Locate the folder you have extracted files from Obsidian to. Once you are there, you should see two folders: assets and data. Go to data and click through the folders until you arrive at the file called skin0.bin (this is for the default skin, if you are editing a different one then the number will be different too).

For SFX: click on "select audio file", locate the place you extracted the Obsidian files to, then click on assets -> sounds -> wwise2016 -> sfx -> characters -> (your champion name) -> skins -> base (if you are editing the default skin). There you will see two files. Select the one that ends with "audio". Afterward, click on "select events file". In the same directory as the previous file, select the file ending with "events".

For voice-over: click on "select audio file", locate the place you extracted the Obsidian files to, then click on assets -> sounds -> wwise2016 -> vo -> en_us (or whatever other language you use) -> characters -> (your champion name) -> skins -> base (if you are editing the default skin). There you will see three files. Select the one that ends with "audio" and is a WPK file, it should also weigh more. Afterward, click on "select events file". In the same directory as the previous file, select the file ending with "events".

For both: once you have all three files selected, click "parse files" on the right.

The window should look something like this for SFX:

The window should look something like this for voice-over:

Bear in mind, however, that's how it looks for Kha'Zix, for the champion of your choice it might look a bit different. Now, as you can see, every line has a small plus button next to it. Clicking it will expand the list and show you the individual files. Clicking on them will automatically play the associated sound file. Beware! Those are really damn loud. If you don't want the sound to play automatically on clicking the file, you can disable it in Settings.

The lines tell us more or less about the circumstance a given sound should play in. Some are a bit more straightforward, like "Play_vo_Khazix_Taunt3DGeneral". The voice lines there play when you do Ctrl+2 Taunt with your character. "Play_sfx_Khazix_KhazixBasicAttack_OnCast" are the sound effects that play once Kha'Zix swings his blades, not when they hit the target, just when he starts swinging. Sometimes the sound may be a bit difficult to identify, you can always just hit the Practice Tool and try to get that sound in-game.

If there are multiple files under one list, and most often there will be, then it usually means the game will randomize which file to play in-game from the ones within that list. In other, rarer cases, it means one will be played immediately after the other has ended.


Optional: Extracting League's audio files and converting them to .wav

Say, you wanted to take a sound from Pyke's Ult, make it louder, and put it on Pantheon's Q, for whatever reason. Then you would need to first extract Pyke's ult sound, right? So, you'd locate the specific sound you want in the gui, click on it, then click "extract selection" on the right. Choose your preferred destination. Now, what you are left with is the wem file, which cannot be read by Audacity or any other common audio software. That's when Foobar2000 comes in. Assuming you have the LoL plugin downloaded and implemented, open Foobar and drag your file onto it. Right-click on it in Foobar, press Convert -> Quick Convert, make sure WAV is selected, and press convert. Now your output file is ready to be edited with Audacity or whatever else. If you, however, don't want to edit it, don't want to use it anywhere outside League, and just want to replace it, then you won't need to use Foobar, as you can just import the wem file straight away into whatever other champion you wanted it in the first place.


Replacing sound files

Replacing the sound files is rather simple. Simply click the sound file you want to replace, then click "Replace wem data", locate the file you wanted to replace it with (converted to .wem with Wwise), and simply click open. The file is now replaced. You can play the sound of this file again to confirm it has indeed changed. Once you have done that for every file you wished to replace, click on the higher most line in the gui, the one that is selected on the screenshots above, then place "Save as bnk/wpk" and choose your preferred destination. Please note, that even though you have initially selected three files, the bin, the audio and the events, you only modify the audio file, hence that's the only one that will get extracted.


 

Placing your modded files in-game

Creating wad files

This is it, we are almost there! Now has come the time to create the wad files. You have already seen them at the very beginning of this tutorial - these are the files in League's install folder, the ones that store all the champion info, the ones we extracted with Obsidian. Now we need to create them ourselves.

For SFX: this file goes into the main wad file, the (Name).wad.client. As you might remember, this is the main file, so it stores all other info about a champion except for their voice-over. So, if you are just editing the sounds for your own custom skin mod, then you put both in the same wad file. But, to the point: you need to create a very specific path in your file explorer. Navigate to a folder of your choosing, then create a folder with your champion's name, exactly as it appeared in the original files. So, for my case, I have to name my folder "Khazix". In there create another folder, called "assets". In it, a folder called "sounds". In it, a folder called "wwise2016". In it, a folder called "sfx". In it, a folder called "characters". In it, a folder with the name of your champion, so for me, "khazix". In it, a folder called "skins". In it, a folder called "base" (if you are doing the default skin). And inside of that is where you put the file you extracted from BNK Extract gui.

For voice-over: this file goes into the other file, the one named "(Name).en_US.wad.client". Again, remember that the en_US part will be different for you if you are using a different language. So, you need to create a very specific path in your file explorer. Navigate to a folder of your choosing, then create a folder with your champion's name, exactly as it appeared in the original files, and add ".en_US" after the name, or whatever other language you have. So, for my case, I have to name my folder "Khazix.en_US". In there create another folder, called "assets". In it, a folder called "sounds". In it, a folder called "wwise2016". In it, a folder called "vo".In it, a folder called "en_us", of course, change it if you have a different language set up. In it, a folder called "characters". In it, a folder with the name of your champion, so for me, "khazix". In it, a folder called "skins". In it, a folder called "base" (if you are doing the default skin). And inside of that is where you put the file you extracted from BNK Extract gui.

For reference, this is how the "en_US" part will look like for other languages:

For both: Now head over to the place where you have your LCSManager installed. There, you should see a folder called "cslol-tools":

Inside, you will find a file called "wad-make.exe". Drag your parent folder (so Name for sfx and Name.en_US for voice-over) over the said file, and it will create a wad file next to your parent folder. So it should look like this:

Creating voice-overs for multiple regions

To be completely honest, I have never done it, as I never saw the need to/was too lazy to do it. But to do so quickly, you will have to use the VO Helper by tarngaina. Go to the download link below, get the exe version, but bear in mind, it has been falsely flagged as a virus, so you'll need to tell your firewall to calm down. Tarngaina is a trusted and renowned creator, you shouldn't worry about your motherboard getting hacked. If you are still a bit paranoid, then you would have to do it manually. I'm pretty sure all you need to do is change the subfolder's name from "en_us" to a one corresponding to one of the regions displayed on a screenshot above. After that you would have to rename the parent folder to switch the "en_US" to the same thing you've set the subfolder to. Still, I'm not sure, since I don't play in English all the time.


Creating a mod using LCSManager

Now time for the penultimate step. Open LCSManager, and click on the + icon in the bottom right corner. Fill out the details of your mod how you want to be, then click "save". In the next window click "add wad files" and navigate to your freshly created wad file. Add it, then click close. Enable the mod and run it. See if it works in-game, If it does, great! Onto the final step. If it doesn't, then we will try to figure it out.

Creating the final .fantome mod file

If everything works fine and the mod is considered done, then all we have to do is save it as a .fantome file, so anyone can easily install it for themselves. In LCSManager, there will be a few icons next to your mod name. Click the zip one:

Then just pick a convenient place to save the file, rename it to something shorter if you want, and you are good to go! The file is ready to be used by anyone, with the help of LCSManager. Good job!

What if it doesn't work in-game?

Of course, they may be plenty of reasons why your mod isn't working in-game, even though it should. But most often, they are solved by the simplest solutions

- Check whether you have named everything properly

There were a few times when I myself made a little typo when creating the folders for the wad files. Remember, these are all case-senstitive, so name them as I did in the tutorial. If you have doubts, go back to where you extracted League's original files and compare the file path/names with those, as they have to match

- Check whether you have put all the files in their respective folders

Sometimes we forget to actually put out extracted bnk file into the folder it's supposed to go to. Double check everything is in its proper place

- You didn't set Vorbis Quality High in Wwise or have set it after importing your .wav files

- I did that with my very first mod. You could even hear the new sounds in the gui, but everything was silent in-game. So remember to set the vorbis as the first thing in Wwise

- The author of this tutorial was intoxicated when he wrote it

- While I do solemnly swear I'm not, I could have made a mistake, happens to everyone. If you are absolutely sure the previous steps are not the reason for your mod not working, then ask for help. Preferably on RuneForge's Discord, but you can also message me if everybody ignores your problem.


 

Socials

If you want to follow my work, I humbly invite you to follow me here:



3,695 views

HOW TO INSTALL CUSTOM SKINS

USING CSLoL-MANAGER

bottom of page