The game will accept files dumped in the datalocal folder but the only tool I know that can edit the .pgz archives is Ego PSSG Editor by Ryder25 but it won't export/import textures into the archive. Resorep won't extract or replace the large files you see on screen because they don't have the dds extension and other stuff to do with texture streaming that I don't understand.

The only way round it is to manually copy the texture data from the large textures to the tiny textures that Resorep can extract and replace (using the PSSG editor) and then use Resorep to run the texture normally. It's a real pain in the arse and hopefully someone will come up with a more elegant way to replace textures and quickly because if you want to use this method to causally mod the game, it will do your head in. It did my head in.

If you have to mod textures now, I will briefly try and explain what I did because I know someone will ask but I literally have no idea what I'm doing and there is probably a better way but I don't know what it is. Please someone, come up with a better way.

The large texture files are in Greedfall/packs/datapchighres.spk, the small ones that you need to edit to make Resorep extract and replace are in datapc_initial.spk. You can extract both packs using WinRar or any unzipper. The small textures are in files with the .pgz extension, the largest ones have the .stzu extension (ignore the medium sized stxh files). This is for character stuff. Environment textures and other crap is in other packs.

You can open both with the PSSG editor (right click, open with... etc).

  • Open both files at the same time (you can have two instances running at once) but go to the stxu file first.
  • Expand the tree until you get to TEXTUREIMAGEBLOCKDATA.
  • Click on the word (the node) and it will freeze for a few seconds while it loads all that binary data.
  • With that highlighted, you need to click on Nodes > Export Data in the menu bar. It will save as a .bin file. Name it something relevant.
  • Now keep the stxu open but go to the pgz file and highlight the same node in that file and go to Nodes > Import Data and import the bin file you just saved.

Next you need to make a few edits in the other nodes above.

  • Edit the number in TEXTUREIMAGEBLOCK to match the same, higher number in the stxu. Just copy and paste.
  • Above that in the TEXTURE node, you need to paste that same number in SizeNormal and SizeHigh so they match SizeUltra.
  • Also in this node you need to edit the width, height and mipmapcount to match the same info in the stxu file.
  • Now you need to change the extensions of the file names in nameHigh and nameUltra to .dds
  • Finally you can save the file as .pgz (you have to click on the drop down menu and select All Files or it will save as PSSG) but you can change the extension after if you forget and it saves in the wrong format.

Now you have proper sized texture files that can be extracted and replaced with Resorep.You need to put them in the datalocal folder in the game directory with the same file structure they had when you unpacked the "packs" so the game will load them. 
You don't need to keep the stxu anywhere particular now that you have copied the information you needed. You can delete it, save it, whatever.

I'm not going to explain how to use Resorep to replace textures. This guy can do it. It's a Batman game but the principle is the same.

If you are following another mod that tells you to edit the Region and Data packs and unpack the entire data pack into your game folder, I didn't need to do that for this to work. The game just reads whatever is in the localdata folder like it was a Bethesda Data folder or any override folder in old Bioware games. 

If you are wondering how to know what textures are the ones you need. You don't. You have to guess based on the filename or open the mesh file (usually in the folder above) and look at the material nodes. Then you go through this whole process to extract the texture just to look at it to check and you can't do a bunch at once because Resorep just exports it with a number. It's fine if you are doing a diff, a norm and a roughness at the same time because you can tell what is what but if you export a bunch of similar diffs like face textures, you won't know which is which necessarily unless it's obvious. Hint: character textures are in "Equipment". "Hea" is head "Hai" is hair etc.. Make sure you are in the "textures" folder.

If you think this is all too much and you want to give up, I don't blame you. Someone will probably come up with an easier way soon so I'm not going to provide any type of "support" for this hacky method. If it ends up being the only way that works, then I might make a proper tutorial with pictures or someone else can do it first because I really don't want to...

Happy modding... ugh.

Article information

Added on

Written by

mrjack900

6 comments

  1. Lacunykt
    Lacunykt
    • member
    • 2 kudos
    Thank you for your amazing work! You're a literal saint
  2. Dheuster
    Dheuster
    • premium
    • 617 kudos
    There is an easier way now:
     
    https://www.nexusmods.com/greedfall/mods/116
  3. nowaru64
    nowaru64
    • member
    • 0 kudos
    This is coming from someone with little, VERY little, modding experience so please bear with me....

    I followed everything in this tut to the letter, and it made sense right until the point at how I'm supposed to extract the textures themselves to edit. Is there a way to extract them from their packs using PSSG, or do I have to use the in-game ripping process with Resorep used in the Batman example vid? For instance, I'm trying to get the player face textures so I can make my own complexion mods, so would I start up the game with Resorep in the background, go to the player creation screen at the beginning, load each face with the sliders, and hope Resorep rips the face textures? And afterwards, how do I know which .pgz file matches with the textures I've ripped?

    If you make an in depth tutorial with pictures like you mentioned, it would be AMAZING. I really hope you find the willpower for it because I'm pretty lost. ^^
    1. mrjack900
      mrjack900
      • premium
      • 176 kudos
      You use resorep to extract textures once you've set up the pssg file.

      "For instance, I'm trying to get the player face textures so I can make my own complexion mods, so would I start up the game with Resorep in the background, go to the player creation screen at the beginning, load each face with the sliders, and hope Resorep rips the face textures? And afterwards, how do I know which .pgz file matches with the textures I've ripped?"

      You don't unfortunately. You set up one face and extract the diffuse, normal and specular (or roughness, can't remember) and extract all three and you will know what is what because of how they look. But if you do all the faces at the same time, you won't know which belongs to the which file you are modding.

      I'm not up for making a tutorial because I'm not really playing or modding the game anymore and I'm sick with a chest infection and feel like crap. You might be better off asking one of the other modders doing face textures. I know there is at least one.

      Sorry I can't be more help.
    2. nowaru64
      nowaru64
      • member
      • 0 kudos
      That's alright, I pretty much got the gist of it from your explanation. Thanks though and hopefully you're feeling less crappy now.
  4. Perwer1515
    Perwer1515
    • supporter
    • 0 kudos
    If you're looking to change texture for items that you can interact with in the game (or anything that displays text to the player), unpacking the .spk relevant to your language (e.g "loc_eng_data" for english) is a good starting off point since you have some connection to plain-text from the game. You don't have to go in completely blind.