Dofus 3 unpacker via terminal
Note
This is a modified version of the original doduda tool. All the core functionality belongs to dofusdude
Modifications include downloading more data and simplified flags.
git clone https://github.com/sebasxs/doduda
cd doduda
go build
./doduda # Run the program
See doduda --help
for all parameters.
This version of doduda
simplifies the download process into three main categories:
- Data: Includes core game data like items, quests, monsters, etc.
- Images: All game pictos including items, monsters (low-res), ui, etc.
- Images with multiple resolutions are downloaded at the highest resolution by default.
- Duplicate images resulting from sprite-texture2D parity during unpacking are correctly filtered and organized into appropriate folders.
- Languages: i18n files for different languages.
Note
Now all the images and core data are downloaded and not only items, mounts and quests.
The core functionality of doduda
remains the same.
--ignore data
: Skips downloading core game data.--ignore images
: Skips downloading all game pictos.
--ignore items
--ignore quests
--ignore mounts
--ignore itemsimages
--ignore mountsimages
--mount-image-workers
Note
This section describes the original update pipeline by dofusdude. It is left here for informational purposes as it does not directly relate to changes done in this fork.
This tool is the first step in a pipeline that updates the data on GitHub when a new Dofus version is released.
- Two watchdogs (
doduda listen
) listen for new Dofus versions. One for main and one for beta. When something releases, the watchdog calls the GitHub API to start a workflow that usesdoduda
to download and parse the update to check for new elements and item_types. They hold global IDs for the API, so they must be consistent with each update. - At the end of the
doduda
workflow, it triggers the corresponding data repository to do a release, which then downloads the latestdoduda
binary (because it is a different workflow) and runs it to produce the final dataset. The data repository opens a release and uploads the files. - After a release,
doduapi
needs to know that a new update is available. The data repository workflow calls the update endpoint. The API then fetches the latest version from GitHub, indexes, starts the image upscaler (if necessary) and does a atomic switch of the database when ready.
- Run
doduda
with--headless
in a server environment or automations to avoid "no tty" errors. This error occurs because the program is trying to access a terminal that doesn't exist. - If you get an error regarding a missing Docker socket when running
doduda render
, find out where yourdocker.sock
is and link it to the missing path or export your path asDOCKER_HOST
environment variableexport DOCKER_HOST=unix://<your docker.sock path>
. Docker requires this socket for communication, so if the program can't find it, this error occurs.
This fork was created solely for personal needs in my own project, cori. All core functionality and the original project belong to stelzo.
This tool is for experimental purposes. All game assets and intellectual property belong to Ankama Games.