Parsing lol wads using lol-wad-parser

Edit: Please refer to this post instead.

For anyone that is developing League of Legends themed apps, it may be handy to use Assets from the official client. Inside the wads, you may find icons, videos, json files with information, audio and backgrounds. And maybe more. According to Riot Games, you may use these Assets on your medium on the conditions stated below:

The general idea:

We’ll start with our golden rule – you can use League of Legends IP as the basis for a fan project that you’re giving away for free or that’s only generating ad revenue (we’ll refer to this type of free fan project as a “Project”), as long as you comply with the guidelines outlined below for using our IP (the “Guidelines”). As a matter of fact, as long as you comply with our Guidelines, we think it’s great if you create awesome, free and original content for League of Legends fans.

If you ask players to pay you for something that’s based on our IP, however, you’ll first need our prior written consent. Submit a request for consent by contacting us at [email protected] so we can inspect your work and decide whether your Project’s gonna be allowed. To be clear: our default answer to these sorts of projects is to disallow them.

We reserve the right to deny the use of our IP at any time, for any reason or no reason, including when we think our stuff is being used inappropriately (which we decide at our sole discretion). If we deny you the right to use our IP, you will need to stop distributing any part of your Project that uses or might use our IP.

Source: Riot Games

If you want to get these files from the client yourself, you can use lol-wad-parser. To use this you must install Node.JS on your computer. After that you can install lol-wad-parser by using this in Command Prompt:

npm install -g lol-wad-parser

Then you can create a .js file containing the following:

var WadParser = require("lol-wad-parser"),
  wad = new WadParser();
var glob = require("glob");
function extractor() {
  glob(
    "**/*.wad",
    {}, //returns a list of files
    async function (er, files) {
      // Make sure to call this function asynchronously to make use of wad-parser extract promise.
      for (var file in files) {
        console.log(files[file]);
        await wad.extract("./" + files[file], "output/" + files[file]); //Wait till current file is extracted
      }
    },
  );
}
extractor();

You can execute this file with command prompt. You should Execute it in (& copy it to) the following folder: C:\Riot Games\League of Legends\RADS\projects\league_client\managedfiles

To execute it, you can either use Command Prompt in the map and type "node yourjsfile.js". (A little trick for getting to the map quickly, press the adress bar and type "cmd") or you can create a file named execute.cmd, containing

node yourjsfile.js
pause

and place this next to your js file. This way you can always quickly get the new patch extracted.

Demo PageLeague of Legends Community Dragon