A tool that downloads and extracts the Blue Archive JP AssetBundles
, TableBundles
, MediaResources
.
It downloads them directly from the Yostar Servers.
- Python 3.10+
- .Net Runtime 6.0 (If you are using GNU/Linux or MacOS)
Libraries Used (Click to expand)
- aiohttp
- aiofiles
- requests
- requests-cache
- cloudscraper
- flatbuffers
- pycryptodome
- UnityPy
- rich
- xxhash
Download and install python
and uv
. After that clone this repository
git clone https://github.com/Deathemonic/BA-AD
or just download as a zip by clicking Code
> Download Zip
. Then open BA-AD
folder in your Terminal
or CMD
Then install using uv
uv tool install .
you can now run it using the uvx
command
uvx --from ba-ad baad
or if you don't want to type the uvx
command all the time, you can your local bin directory to your PATH
environment. Usually it's located at {User Folder}/.local/bin
. Once you added it to your PATH
environment you can now run it just by typing baad
command.
Install using pip (Click to expand)
pip install .
Tutorial with Screenshots (Click to expand)
- Download the repository files
- Extract the downloaded zip and open the folder from the extracted zip
Shift
+Right Click
then clickOpen PowerShell window here
alternatively you can open cmd then change directory to the folder
- Install the tool using
uv tool install .
- 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.
- Or you can install tool by typing
pip install .
- Your done just type
baad --help
to see the usage. Check out Usage on how to use the tool.
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 [-h] [-v] [-u] [-g] {download,extract} ...
Blue Archive Asset Downloader
positional arguments:
{download,extract}
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 schema
To download the assetsbundles, tablebundles, and media resources we need to initialize download mode, to do that we pass download
so it will be like this baad download
.
> baad download --help
usage: baad download [-h] [--output OUTPUT] [--limit LIMIT] [--catalog CATALOG] [--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)
--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
andMediaResources
> 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
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
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.
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)
- You can export the assetbundles using AssetStudioMod
-
Then you can view the extracted model using Blender
-
Or you can convert the model to pmx to use with MikuMikuDance
-
Or you can port the model to Source to use with Gmod or Source Film Maker I know it looks shit but it works
- You can use the extracted tablebundles to view the game database
- You can use the download media resources to view the game backgrounds, cg, video, or music
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: Can't use auto mode to process file, try manual mode by doing this method.
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.
- hdk5/MoeXCOM
- espectZ/blue-archive-viewer
- fiseleo/Blue-Archive-JP-Downloader
- K0lb3/Blue-Archive---Asset-Downloader
- lwd-temp/blue-archive-spine-production
- aelurum/AssetStudio
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.