MDE is a model extraction tool that converts Destiny 2 dynamic models into fbx files supporting textures, skeletons, and all provided vertex data.

Overview

Monteven's Dynamic Extractor (MDE)

MDE is a model extraction tool that converts Destiny 2 dynamic models into fbx files. A dynamic model is one that is animated or is spawned in during the game. The extractor has:

  • partial skeleton support (incorrect rotations)
  • texture extraction, DDS -> PNG
  • weighted models
  • batch extraction for packages
  • API hash model extraction, mainly for HD textures for API rips

Things I would like to support in the future:

  • better skeleton support with correct rotations
  • animations

There is no risk of a game ban by using this tool.

If you use MDE in any of your projects, it would be highly appreciated if you credit me :)

Usage

The tool requires Windows 64 bit and a Destiny 2 installation.

The tool is used via the command line:

MontevenDynamicExtractor -p [packages path] -o [output path] -n [file name] -i [input hash] -t -b [package ID] -a [api hash]

The required arguments are -p and one of -i, -b, or -a. Backslashes will not work for file paths.

  • -p [packages path]: package path for Destiny 2. An example might be I:/SteamLibrary/steamapps/common/Destiny 2/packages
  • -o [output path]: the output path, by default is the current directory
  • -n [file name]: the file name of the target folder and files, by default is the hash provided
  • -i [input hash]: the input hash. To get hashes to extract, either use the batch command or the public sheets page
  • -t: enable texture extraction
  • -b [package ID]: will extract every dynamic model given for a package ID. For the package "w64_sr_combatants_01ba_4", the package ID would be "01ba"
  • -a [api hash]: the api hash in numerical form, such as 748485514. Not all API hashes will work since they do not all contain API data
  • -c: enable cbuffer extraction. cbuffers may provide some information about colours for custom shaders
  • -s [override num]: overrides the skeleton of the extracted model. -1 is no override, 0 extracts with no skeleton, 1 with the default NPC body, and 2 with the default NPC head

License/Disclaimer

License/Disclaimer

MDE is licensed under the General Public License 3.0. You are free to use MDE, both it and its source code, under the terms of the GPL. MDE is distributed in the hope it will be useful to, but it comes WITHOUT ANY WARRANTY, without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, see the LICENSE file for more information.

This repo is in no shape or form associated with Bungie and its developers. These tools are developed to allow users access to assets for use in awesome stuff. The assets extracted by these tools are property of their respective owners.

Thanks

Lots of people helped me to get to this stage, including but not limited to:

  • Ginsor
  • HighRTT
  • MrAir
  • lowlines
  • Thejudsub
  • BIOS
  • Javano

it's been fun working on Destiny datamining, and I hope I can continue to work on it in the future.

You might also like...
16 channel R/C system for models of all kinds

A 16 channel Radio Controlled system for R/C models of all kinds. This project was started during the 2020 pandemic lockdown (thus the title), and has since grown out of passion & enthusiasm.

This is a tool for software engineers to view,record and analyse data(sensor data and module data) In the process of software development.
This is a tool for software engineers to view,record and analyse data(sensor data and module data) In the process of software development.

![Contributors][Huang Jianyu] Statement 由于工具源码在网上公开,除使用部分开源项目代码外,其余代码均来自我个人,工具本身不包含公司的知识产权,所有与公司有关的内容均从软件包中移除,软件发布遵循Apache协议,任何人均可下载进行修改使用,如使用过程中出现任何问

bl_mcu_sdk is MCU software development kit provided by Bouffalo Lab Team for BL602/BL604, BL702/BL704/BL706 and other series of  RISC-V based chips in the future.
bl_mcu_sdk is MCU software development kit provided by Bouffalo Lab Team for BL602/BL604, BL702/BL704/BL706 and other series of RISC-V based chips in the future.

bl mcu sdk is an MCU software development kit provided by the Bouffalo Lab Team for BL602/BL604, BL702/BL704/BL706 and other series of chips in the future

a small C library for x86 CPU detection and feature extraction

libcpuid libcpuid provides CPU identification for the x86 (and x86_64). For details about the programming API, you might want to take a look at the pr

A small single-file library for sprite outline extraction and simplification for C/C++
A small single-file library for sprite outline extraction and simplification for C/C++

Sproutline A small single-file library for sprite outline extraction and simplification for C/C++. Input: Sprite with an alpha channel. Output: All th

Create a working USB CDC class starting from the clear template provided by ST

STM32F3 USB Classes from template The goal of this project is to provide a decent collection of guidelines for creating working USB classes to be used

Several GX2 test programs to compare it with OpenGL. (With additional GLFW+OpenGL implementation provided)

GX2-Tests Provided are GX2 test programs and samples for comparison with OpenGL and with additional GLFW+OpenGL implementation for test on PC. These s

A remote start arduino sketch, written for a Volkswagen Golf Gti MK4. Icons provided by Icons8
A remote start arduino sketch, written for a Volkswagen Golf Gti MK4. Icons provided by Icons8

Introduction 🚀 This is an arduino sketch that enables the use of a sim-reader in order to remotely start a vehicle Description This Arduino sketch is

A BOF to parse the imports of a provided PE-file, optionally extracting symbols on a per-dll basis.

PE Import Enumerator BOF What is this? This is a BOF to enumerate DLL files to-be-loaded by a given PE file. Depending on the number of arguments, thi

Comments
  • "OpenCV: terminate handler is called" when ripping Crown-Splitter

    As the title says, I'm getting an error when I try to rip the Crown-Splitter sword in MDE v1.6.1. I'm not aware of any other items that won't extract, seems to only be this sword. The issue also exists in MDE v1.6.0, but the issue does not exist in MDE v1.5.0.

    Here is the output from the failed v1.6.1 extraction:

    F:\Destiny Model Rips\Monteven Dynamic Extractor\MDE v1.6.1>MontevenDynamicExtractorv1.6.1 -p "D:/Steam/steamapps/common/Destiny 2/packages" -o "F:/Destiny Model Rips/Destiny 2 MDE Extractions/Temp" -a 2782325302 -t -s 2 API flag found, getting api models... exporting api model...

    Dynamic has no mesh data (C), skipping...Skeleton flag 2, ripped models will use the player face rig.

    File extraction readied... texconv.exe "F:/Destiny Model Rips/Destiny 2 MDE Extractions/Temp/2782325302//textures/f64bac80.dds" -y -ft png -f BC1_UNORM_SRGBMicrosoft (R) DirectX Texture Converter [DirectXTex] Version 2021.1.10.2 Copyright (C) Microsoft Corp. All rights reserved.

    reading F:/Destiny Model Rips/Destiny 2 MDE Extractions/Temp/2782325302//textures/f64bac80.dds (1024x2048 BC1_UNORM_SRGB 2D) as (1024x2048 R8G8B8A8_UNORM_SRGB 2D α:Opaque) writing F:/Destiny Model Rips/Destiny 2 MDE Extractions/Temp/2782325302//textures/f64bac80.PNG OpenCV: terminate handler is called! The last OpenCV error is: OpenCV(4.5.2) Error: Assertion failed (0 <= roi.x && 0 <= roi.width && roi.x + roi.width <= m.cols && 0 <= roi.y && 0 <= roi.height && roi.y + roi.height <= m.rows) in cv::Mat::Mat, file C:\build\master_winpack-build-win64-vc15\opencv\modules\core\src\matrix.cpp, line 811

    F:\Destiny Model Rips\Monteven Dynamic Extractor\MDE v1.6.1>pause Press any key to continue . . .

    opened by McCaffeteria 1
  • Option to batch extract everything?

    Option to batch extract everything?

    I've written a somewhat rudimentary script to just iterate through everything and extract it, but it would be a good enhancement to have that feature built in (IMO.)

    opened by Crinfarr 2
  • Getting ERR1515 when executing

    Getting ERR1515 when executing

    Hello,

    I get the Error "ERR1515" when i try to MDE. Is it for the current Destiny 2 Verrsion outdated? Or i beeing stupid and missing some thing? image

    I would appreciate i you would Look at it.

    opened by Kurainu 2
Releases(v1.6.1)
Owner
Montague
Imperial College London
Montague
This code converts a point cloud obtained by a Velodyne VLP16 3D-Lidar sensor into a depth image mono16.

pc2image This code converts a point cloud obtained by a Velodyne VLP16 3D-Lidar sensor into a depth image mono16. Requisites ROS Kinetic or Melodic Ve

Edison Velasco Sánchez 6 May 18, 2022
ESP32-Skid-Steer - Bruder Catepillar Skid Steer model converted to RC, controlled by an ESP32 with 2 analog joysticks and a receiver that is an ESP32 on the model.

ESP32-Skid-Steer Bruder Catepillar Skid Steer model converted to RC, controlled by an ESP32 with 2 analog joysticks and a receiver that is an ESP32 on

null 5 Feb 4, 2022
Dynamic array supporting Range Minimum Queries

dynamic-RMQ Dynamic array supporting Range Minimum Queries. Data structure that represent a dynamic array supporting Range Minimum Queries. The data s

Massimiliano Rossi 4 Aug 24, 2022
An experimental sprite rendering setup utilizing SSBO's, Threading, EnTT reactive systems, and array-textures based sprite caching.

entt-reactive An experimental sprite rendering setup utilizing pooled SSBO's, a multithreaded setup based on Even Todd's The Poor Man's Threading Arch

Jackie Fuchs 7 Apr 29, 2022
6D - Pose Annotation Tool (6D-PAT) - is a tool that allows the user to load a set of images and also a set of 3D models and annotate where in the 2D image the 3D object ist placed.

6D - Pose Annotation Tool (6D-PAT) For detiled explanations checkout the WikiPage. What is it? With 6D-PAT you can create 6D annotations on images for

Florian Blume 65 Sep 22, 2022
A model checker for the Dynamic Logic of Propositional Assignments (DL-PA) with solving and parameterized random formula generation functionalities.

A model checker for the Dynamic Logic of Propositional Assignments (DL-PA) with solving and parameterized random formula generation functionalities.

Jeffrey Yang 7 Dec 31, 2021
Project PLS is developed based on icarus iverilog and will compile verilog into a much faster optimized model.

Getting Started with PLS The project is developed based on icarus iverilog. Special thanks to Stephen Williams ([email protected]). PLS is a Verilog si

null 9 Aug 11, 2022
Converts file formats supported by AdPlug to VGM format.

adlib2vgm Converts file formats supported by AdPlug to VGM format. Notice This tool is originally designed to work with the RetroWave OPL3 Sound Card.

SudoMaker 15 Sep 12, 2022
An extremely basic Python script to split word-based data into high and low byte files.

An extremely basic Python script to split word-based data into high and low byte files. This is for use in programming 16 bit computer ROMs.

null 1 Dec 26, 2021
Command line C++ and Python VSTi Host library with MFCC, FFT, RMS and audio extraction and .wav writing.

______ _ ___ ___ | ___ \ | | | \/ | | |_/ /___ _ __ __| | ___ _ __| . . | __ _ _ __

Leon Fedden 288 Sep 12, 2022