Ripping Battlerite Assets

## Avatars

All avatars are in `steamapps\common\Battlerite\Battlerite\AccountVanity\cache` but they have no file extension and the names are hashed. The original names can be found in `steamapps\common\Battlerite\Battlerite\AccountVanity\AccountVanity.def.sjson`

This PowerShell script creates a new folder "pngs" containing the avatars as png with the correct name:

```
$path = "C:\Program Files (x86)\Steam\steamapps\common\Battlerite\Battlerite\AccountVanity\"
$cachepath = $path + "cache\"
$pngspath = $path + "pngs\"

$testpath = test-path $pngspath

if(!$testpath){
    new-item $pngspath -itemtype directory
}

$pictures = 0

$reader = [System.IO.File]::OpenText($path + "AccountVanity.def.sjson")
while($null -ne ($line = $reader.ReadLine())) {
    if($line -match "Pictures =") {
        $pictures = 1
    }
    if($pictures){
        $nameindex = $line.IndexOf("File")
        if($nameindex -ge 0){
            $nameindex += 8
            $name = $line.Substring($nameindex, $line.IndexOf('"', $nameindex) - $nameindex)

            $hashindex = $line.IndexOf("Hash")
            $hashindex += 8
            $hash = $line.Substring($hashindex, $line.IndexOf('"', $hashindex) - $hashindex)

            $name + ".png"
            copy-item ($cachepath + $hash) ($pngspath + $name + ".png")
        }
    }
}

```

## Image files

There are two main locations of the image files. One part is in the assets files in `steamapps\common\Battlerite\Battlerite_Data` and the other part is in all the files in `steamapps\common\Battlerite\bundles`

To extract them use Unity Assets Bundle Extractor

### Battlerite\_Data

1. open all the .assets files in UABE
2. sort by type
3. select all textures (not sprites)
4. click the plugin button and then export

### Bundles

1. create a new text file in your UABE folder "batch.txt" containng
```
+DIR C:\Program Files (x86)\Steam\SteamApps\common\Battlerite\bundles
```
2. create a new batch file in your UABE folder containing
```
AssetsBundleExtractor batchexport batch.txt
```
 and run it
3. move all the new .assets files into their own folder, Everything makes this easy and fast
4. extract with UABE like above

## Audio files

All audio files are stored in sound banks, which are located in `steamapps\common\Battlerite\Battlerite_Data\StreamingAssets`
To extract them first extract the intermediate fsb (FMOD sample bank) files and then extract the audio files from the fsb files. To get to the fsbs use quickbms.

This bms will extract the fsbs:

```
for OFFSET = 0
    goto OFFSET
    findloc OFFSET string "FSB5"
    goto OFFSET
    getdstring FSB_SIGN 4   # FSOUND_FSB_HEADER_FSB5 (fsb.h)
    get version long
    get numsamples long
    get shdrsize long
    get namesize long
    get datasize long
    xmath SIZE "0x3c + shdrsize + namesize + datasize"
    log "" OFFSET SIZE
next OFFSET + SIZE

```

To get to the actual audio files id-deamon wrote a tool that uses an older version of the FMOD API. Download here.

## Strings

Strings are in localization files located in `steamapps\common\Battlerite\Battlerite\Localization`. It would be possible to dump the strings with associated values when the characters load...