This method was made public by me, not sure who told you to “keep it a secret” other than maybe some people I helped 1:1 who are now holding onto it privately for Tiktok clout. So I’ll just post a public tutorial for those who can use a hex editor here.
To answer @advictoriams about why there is so much “secrecy” in the modding community: there are only a handful of people who have ever done so much as touch the game data. “Mod support” for the game would be cool, but there is genuinely very little interest in modding this game overall. Not only is the engine entirely proprietary and unique to QD, there is only so much you can do with the cinematic format. People in general understandably have way more interest in modding open-world games that have more replayability and which also likely use much more well documented data types.
When you are in a community that you can count every member of on one hand, there is going to be much less information proficiency and availability just through virtue of its size. Most of us reverse engineer entirely independently; making information public has to be a conscious choice. There is also a very clear distinction between making “information” public and making “tools” public. Very few people have the patience to sit down and try to conceptually understand how all of this works and replicate the results themselves. Even for those who do have the patience, explaining it and absorbing the information even for things that seem like they would be simple is often an hours-long, if not days-long process.
The solution to this problem is writing a tool to handle the mod, as you’ve probably seen Aaron and Reicito did on the Deadray site, but writing tools is its own involved process. I personally am barely able to write properly-functioning command-line tools for my own purposes, there is no way I’m learning everything required to make a program as clean, stable and cross-compatible as it would need to be in order to distribute it, especially not when I’m in the middle of my own projects.
Any other “secrecy” you see is probably up to individual preference by those who reversed the methods themselves. Which is ironic, because most people in the modding community didn’t reverse the methods themselves, they either paid for them back in the early days or were told by other people. That isn’t to minimize anyone’s effort or contributions, but this has been a significant and persistent issue that has existed in this fandom’s modding community since its origins. This issue ironically further contributes to said “secrecy”, because when other people in the community are keeping whatever they’ve been able to get their hands on to themselves and would gladly take whatever they can get from you too, it doesn’t exactly make you eager to share.
This particular method uses two parts: something that was accidentally discovered by someone almost a year ago (swapping a character model onto a backpack will make the model conform to the skeleton of the model that is wearing the backpack), and something that was reversed by me (how to stabily make textures/”mesh parts” appear invisible). I am also regrettably the origin of any completely shirtless Connor mods you may see; although dragonbane made it possible for Connor to wear his open shirt in any scene with his script modding framework, no one had removed the shirt itself until I reversed that method in April 2022.
I didn’t even know how to do this skeleton conformity thing either until I pieced together the fundamental underlying mechanic months later, because the person who I shared the second half of this method with decided to keep what they stumbled on to themselves for clout. I’d rather nip a repeat of that in the bud right now, so here’s how to step-by-step replicate this in your own game, with use of the Deadray texture tool and a hex editor such as HxD.
- Download the Texture Tool from Deadray (it’s in “More Tools”, top right)
- Follow this tutorial on how to get QD textures visible in the tool
- Download a hex editor, any will do
- Make backup clean copies of .idx and .d26 from your game directory
- Open the texture tool, go into catalog, select the model you want to be the “base” (if it’s SWAT Connor, the base is "CONNOR_INT02″). You will be adding the SWAT outfit to his model. You can find an online version of all character model strings here.
- At the bottom there’s a string that looks like this:
it will look like “00 00 00 03 00 00 00 01 00 00 XX XX …”, select the rest of the string to the right of those two variable bytes (in this case 06 0F) and copy it (will need to drag to the end and the UI element will scroll right to make the entire string visible)
- Open .idx in your hex editor and ctrl+f “00 00 00 03 00 00 00 01 00 00 04 4D“. Overwrite the bytes to the right of that string with the ones you just copied:
- Save the file. (The texture tool will need to be closed to do this).
- Go back to your base model in the texture tool. If you’re removing parts of it, which we are, we’re removing everything other than Connor’s face, hit “Enable Editing”.
- Find the textures of the parts you want to remove. We’ll start with Connor’s jacket, select the texture.
- On the right side there’s an info section, copy “offset”.
- Open .d26 in a hex editor, go to (ctrl+g) the selected offset. Make sure your goto field is set to hexadecimal and not decimal. You should land on a byte. Following this byte, find the first occurrence of “B5 08 00 00” and note the following 4 bytes.
We landed at that “0E” and are going to remember that 84 6D 00 00.
- Endian switch the bytes. If you don’t know how to do this, Google how. In this case, “84 6D 00 00″ becomes “00 00 6D 84”.
- Repeat this process for everything else you want to remove from Connor. This would be: his shirt (and tie, they’re handled as one), armband, triangle, jeans and his shoes. For anyone just following along, here are those IDs in little endian: 00 00 6D 2F (shirt), 00 00 6D 48 (armband), 00 00 6D 40 (triangle), 00 00 6D 7A (jeans) and 00 00 6D 17 (shoes).
- Open .idx in your hex editor again. Find the byte string “00 00 08 B5 00 00 00 01 XX XX XX XX”, in which “XX XX XX XX” is your endian-switched ID. Make the following 4 bytes into “99 99 99 99″.
- Repeat this process for every texture string you want to remove. Once you do this, the tool will no longer be able to open the container, so make sure you have everything. Save the file.
- Now do the same thing as you did initially to get the string of the secondary model you want. In this case, we want Captain Allen’s uniform. His model is SWATCAPTAIN_01.
- With the secondary model’s string, search for “00 00 00 03 00 00 00 01 00 00 06 4A” in .idx and replace the following bytes with the ones from the secondary container, just like we did before.
- Repeat the process to remove Captain Allen’s head. This would be his hair, face, eyes and mouth. If you want to keep his earpiece, you can leave it. Those textures are: 00 00 C6 20 (hair), 00 00 CE 7C (face), 00 00 CB 11 (eyes) and 00 00 83 C9 (mouth).
- Boot Capitol Park or Spare Parts. Congrats, you’re now playing as Connor in a SWAT uniform. If any other models around you use one of the textures you just zeroed like the triangle or armband, those will also be missing. When you’re done, restore your backup file copies and delete .mods.
This method is limited to scenes in which Markus wears a backpack, and is limited to a single second model only. dragonbane does his own custom composites to make this stable, functional in any chapter and with any number of different models on top.
I owe a lot to people. Four people, namely Otis_Inf (Frans Bouma), Aaron, Reicito, and dragonbane. Frans, Aaron and Rei were before my time. When I started modding there was already a freecam and a texture modding tool in widespread use. This was a huge benefit to me, since it was an in to reversing the game data. Use of the texture tool was how this method was reversed at all. To dragonbane I owe a lot more.
I’d like everyone to consider what and to whom they owe. If you know how to do this because I told you, you owe that to me. I don’t care if you credit me, I don’t care what you do with it on Tiktok or on Instagram or on your own. But it is not “your” method, and not yours to keep secret.