Skip to content

Downloads the latest asset bundles, table bundles, and media resources from Blue Archive JP

Notifications You must be signed in to change notification settings

Deathemonic/BA-AD

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

98 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

logo

Blue Archive - Asset Downloader

A tool that downloads and extracts the Blue Archive JP AssetBundles, TableBundles, MediaResources.

It downloads them directly from the Yostar Servers.

Requirements

  • Python 3.10+
  • .Net Runtime 6.0 (If you are using GNU/Linux or MacOS)

Installation

Before doing anything, make sure you have git installed.

  • Windows (You might to close and reopen powershell after installing uv):
# Install UV
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

# Install Blue Archive Asset Downloader
uv tool install git+https://github.com/Deathemonic/BA-AD
  • Linux or MacOS:
# Install UV
curl -LsSf https://astral.sh/uv/install.sh | sh

# Install Blue Archive Asset Downloader
uv tool install git+https://github.com/Deathemonic/BA-AD
Install using pip (Click to expand)
pip install git+https://github.com/Deathemonic/BA-AD

Tutorial with Screenshots (Click to expand)

Before doing anything, make sure you have uv installed.

  1. Download the repository files

stepone

  1. Extract the downloaded zip and open the folder from the extracted zip

steptwo

  1. Shift + Right Click then click Open PowerShell window here

alternatively you can open cmd then change directory to the folder

stepthree


  1. Install the tool using uv tool install .

steptwentytwo

  1. You can now run it using the uvx --from ba-ad baad to see the usage. Check out Usage on how to use the tool.

steptwentythree


  1. Or you can install tool by typing pip install .

stepfour

  1. Your done just type baad --help to see the usage. Check out Usage on how to use the tool.

Example Usage (Click to expand)
  • Downloads the assetbundles stepfive stepsix

  • Downloads the tablebundles stepseven

  • Downloads the media reasources stepeight

  • Output results stepnine stepthirteen

  • Extracting assetbundles stepten stepeleven

  • Extracting tablebundles steptwelve

Usage

Important

Before you go downloading the game assets please read Nexon's Terms and Service first. You are not allowed to sell the game files, models or use them for commercial purposes.

> baad --help
usage: baad.py [-h] [-v] [-u] [-g] {search,download,extract} ...

Blue Archive Asset Downloader

positional arguments:
  {search,download,extract}
    search              search mode
    download            download game files
    extract             extract game files

options:
  -h, --help            show this help message and exit
  -v, --version         show program's version number and exit
  -u, --update          force update the apk
  -g, --generate        generate the flatbuf schemas

Downloading

Two ways to download the AssetBundles, TableBundles, and MediaResources, you can use the search mode to search the files and download them one by one or you can use the download mode to download them all at once.

Search Mode

By passing search to the command it will initialize the search mode. It will display a telescope like interface to search.

  • Press ESC / Ctrl+C to exit the search mode.
  • Press Up / Down Arrow to navigate the results.
  • Press Enter to download.
> baad search --help
usage: baad search [-h] [--output OUTPUT]

options:
  -h, --help         show this help message and exit
  --output OUTPUT    output directory for the downloaded files (default: ./output)
  • Preview
> baad search
╭────────────────────────────────────────── [242 matches] [Press ESC to exit] ──────────────────────────────────────────────────────╮
│ > hina                                                                                                                                             │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│  Category           Name                                                                                                                    Score  │
│  AssetBundles       assets-_mx-characters-chinatsu_original-_mxdependency_assets_all_846378255.bundle                                       100.0  │
│  AssetBundles       assets-_mx-characters-hinata_original-_mxdependency_assets_all_2633272979.bundle                                        100.0  │
│  AssetBundles       assets-_mx-characters-hina_original-_mxdependency_assets_all_2197045057.bundle                                          100.0  │
│  AssetBundles       assets-_mx-spinecharacters-hinata_spr-_mxdependency-2022-05-12_assets_all_2069167071.bundle                             100.0  │
│  AssetBundles       assets-_mx-spinecharacters-hina_spr-_mxdependency-2022-05-12_assets_all_2902431980.bundle                               100.0  │
│  AssetBundles       assets-_mx-spinelobbies-chinatsu_home-_mxdependency-2022-08-05_assets_all_3351844762.bundle                             100.0  │
│  AssetBundles       assets-_mx-spinelobbies-chinatsu_home-_mxdependency-2024-10-07_assets_all_2446188734.bundle                             100.0  │
│  AssetBundles       assets-_mx-spinelobbies-hinata_home-_mxdependency-2022-05-12_assets_all_954430367.bundle                                100.0  │
│  AssetBundles       assets-_mx-spinelobbies-hina_home-_mxdependency-2022-05-12_assets_all_942958369.bundle                                  100.0  │
│  AssetBundles       cafe-characteranimation-hinata_original-_mxload-2022-05-12_assets_all_3824060714.bundle                                 100.0  │
│  AssetBundles       cafe-characteranimation-hinata_original-_mxload-2023-01-31_assets_all_84505541.bundle                                   100.0  │
│  AssetBundles       ch0231_ex1_skillrange_hina-_mxload-2024-05-30_assets_all_3972412721.bundle                                              100.0  │
│  AssetBundles       character-chinatsu_original-_mxload-2024-05-30_assets_all_3428424620.bundle                                             100.0  │
│  AssetBundles       character-hinata_original-_mxload-2024-05-30_assets_all_3469200835.bundle                                               100.0  │
│  AssetBundles       character-hina_original-_mxload-2024-05-30_assets_all_491539302.bundle                                                  100.0  │
│  AssetBundles       character-npc_hina_original-_mxload-2024-05-30_assets_all_4216052020.bundle                                             100.0  │
│  AssetBundles       field-animations-hina_original_field-_mxload-2024-01-05_assets_all_802754237.bundle                                     100.0  │
│  AssetBundles       field-cafe-characteranimation-field_player_hina_original-_mxload-2024-01-05_assets_all_2972041167.bundle                100.0  │
│  AssetBundles       fx_anim_hina_haloroot-_mxload-2024-05-30_assets_all_1580215221.bundle                                                   100.0  │
│  AssetBundles       prologdepengroup-assets-_mx-characters-chinatsu_original-_mxprolog-2024-01-05_assets_all_2365528123.bundle              100.0  │
│  AssetBundles       prologdepengroup-assets-_mx-spinecharacters-chinatsu_spr-_mxprolog-2022-05-12_assets_all_1184923134.bundle              100.0  │
│  MediaResources     Hina_Battle_Damage_1.ogg                                                                                                100.0  │
│  MediaResources     Hina_MemorialLobby_4_2.ogg                                                                                              100.0  │
│  MediaResources     Hina_Battle_Damage_3.ogg                                                                                                100.0  │
│  MediaResources     Hina_Battle_Damage_2.ogg                                                                                                100.0  │
│  MediaResources     Hina_Formation_Select.ogg                                                                                               100.0  │
│  MediaResources     Hina_MemorialLobby_4_1.ogg                                                                                              100.0  │
│  MediaResources     Hina_Battle_BuffSelf_1.ogg                                                                                              100.0  │
│  MediaResources     Hina_Season_Birthday_Player.ogg                                                                                         100.0  │
│  MediaResources     Hina_Tactic_Defeat_1.ogg                                                                                                100.0  │
│                                                                                                                                                    │
│                                                                                                                                                    │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
Download Mode

By passing download to the command it will initialize the download mode. This is quite flexible than search mode because it alows you to control the limitation of concurrent download, catalog url, and filter.

> baad download --help
usage: baad download [-h] [--output OUTPUT] [--limit LIMIT] [--catalog CATALOG] [--filter FILTER] [--assets] [--tables] [--media] [-a]

options:
  -h, --help         show this help message and exit
  --output OUTPUT    output directory for the downloaded files (default: ./output)
  --limit LIMIT      set a limit the download limit (default: 5)
  --catalog CATALOG  force change the catalog url (will skip apk download)
  --filter FILTER    filter by name
  --assets           download the assetbundles
  --tables           download the tablebundles
  --media            download the mediaresources
  -a, --all          download all game files

You can pass --update to force update the game version.

> baad --update

Examples:

  • Saves the files using Posix Path style
> baad download --tables --output ./Downloads
  • Limit the concurrent download to 10 files
> baad download --assets --limit 10
  • Downloads both AssetBundles and MediaResources
> baad download --assets --media
  • Saves the files using Windows Path style
> baad download --media --output C:\Users\User\Documents
  • Change the catalog url to a older catalog url
> baad download --assets --catalog https://prod-clientpatch.bluearchiveyostar.com/r67_jjjg51ngucokd90cuk4l_3
  • Just download files that contains "Atsuko" in the name
> baad download --assets --filter "Atsuko"

Note

If you have low connection and download say error, rerun the program again it will retry downloading the remaining files. Don't worry it will not download the already downloaded files again

Extracting

To extract the assetsbundles, and tablebundles we need to initialize extract mode, to do that we pass extract so it will be like this baad extract.

No need to extract the MediaResources as it's already extracted by default.

> baad extract --help

usage: baad extract [-h] [--path PATH] [--studio] [--assets] [--tables] [-a]

options:
  -h, --help   show this help message and exit
  --path PATH  path of the files that will be extracted
  --studio     uses the assetstudiomod as a backend for extracting the assetbundles
  --assets     extract the assetbundles
  --tables     extract the tablebundles
  -a, --all    extract all game files

AssetBundles

To extract assetbundles you need to pass --assets to extract the asset then pass --path to specify the path to extract the assetbundles. This will extract the assets files to the parent path folder then AssetExtracted.

By default the extracter uses UnityPy as it's backend but you can pass --studio to toggle AssetStudioMod as the backend. Due to the limitations for UnityPy there's no way to extract the fbx, you could use AssetStudioMod backend to extract the fbx but any fbx associated with animator or animationclips will not be extracted.

Generally you just pick the which assetbundle you need and put them in a seperate folder because it will extract all the assetbundles in the specified path. Extracting is RAM heavy.

Example:

  • Use the selected assetbundles then extracts the assets to ./output/AssetExtracted
> baad extract --assets --path ./output/assetbundles
  • Uses AssetStudioMod as backend
> baad extract --assets --path ./output/assetbundles --studio

Note

This is not meant to be used for primary extracting the assetbundles, this is meant for quick and lazy extraction of the assetbundles and people uses GNU/Linux or MacOS. For proper extraction of the assetbundles you need to use AssetStudioMod GUI (Only runs in windows or use wine in linux #696).


TableBundles

Before extracting the tablebundles we need to generate the flatbuffers first.

> baad --generate

To extract tablebundles you need to pass --tables to extract the asset then pass --path to specify the path to extract the tablebundles. This will extract the assets files to the parent path folder then TableExtracted.

Example:

  • Extracts the tables to ./output/TableExtracted
> baad extract --tables --path ./output/tablebundles

Note

Note you may see warnings and some files didn't get parse, it's a known issue for now but most files will be parse just fine.

What to do now?

You may be asking, I've downloaded everything so what do I do now?

Well anything you want, you can use assetbundles to extract the chibi models and port them into a different game like Gmod or Left 4 Dead. You can use the extracted tablebundles to view the character dialogs. You can use the media resources to listen to the character voice lines or the OST.

Examples (Click to expand)
  1. You can export the assetbundles using AssetStudioMod stepfourteen
  • Then you can view the extracted model using Blender stepfifteen

  • Or you can convert the model to pmx to use with MikuMikuDance stepsixteen

  • Or you can port the model to Source to use with Gmod or Source Film Maker stepseventeen

  1. You can use the extracted tablebundles to view the game database
  • You can view the character dialog stepeighteen

  • You can view the charater skill info stepnineteen

  1. You can use the download media resources to view the game backgrounds, cg, video, or music
  • You can view the game backgrounds and CG steptwenty

  • You can listen character voice lines and ost steptwentyone

Dump

To get dump.cs you need to manually decompile the libil2cpp.so. I recommend following the instructions from Auto-Il2cppDumper or Zygisk-Il2CppDumper. Also I recommend using a emulator like MuMuPlayer to get easy root access.

But you your lazy you can use Il2CppDumper to dump it manually or automatically using a script. You gonna need the Blue Archive JP apk from ApkPure, then rename .xapk to .zip and extract it. You will have multiple apks the apks you need is config.arm64_v8a.apk and UnityDataAssetPack.apk then rename .apk to .zip and extract it.

libil2cpp.so is located at extracted the config.arm64_v8a.apk then at lib/arm64-v8a and the global-metadata.dat is located at the extracted UnityDataAssetPack.apk then at assets/bin/Data/Managed/Metadata.

Note

You will face a ERROR: This file may be protected by doing this method.

Contributing

Don't like my shitty code and what to change it? Feel free to contribute by submitting a pull request or issue. Always appreciate the help.

Acknowledgement

Copyright

Blue Archive is a registered trademark of NAT GAMES Co., Ltd., NEXON Korea Corp., and Yostar, Inc. This project is not affiliated with, endorsed by, or connected to NAT GAMES Co., Ltd., NEXON Korea Corp., NEXON GAMES Co., Ltd., Yostar, Inc., or any of their subsidiaries or affiliates. All game assets, content, and materials are copyrighted by their respective owners and are used for informational and educational purposes only.

About

Downloads the latest asset bundles, table bundles, and media resources from Blue Archive JP

Topics

Resources

Stars

Watchers

Forks

Languages

  • C# 93.2%
  • Python 6.8%