Frodo45127 / rpfm

Rusted PackFile Manager (RPFM) is a... reimplementation in Rust and Qt5 of PackFile Manager (PFM), one of the best modding tools for Total War Games.
MIT License
357 stars 57 forks source link

Debug/Error check: How to include related pack files #257

Open gdwitt opened 1 year ago

gdwitt commented 1 year ago

I am working with a large overhaul mod that has 5 large pack files. When I run error check in one, it get 30,000 errors saying that references are invalid even though they are referring to models in another pack.

How can I run error check and have it include another pack file to link dependencies? It would be nice if I could load it as a dependency game file and not see so many errors so I can find the real errors.

gdwitt commented 1 year ago

I am working with Ancient Empires system by the way in Attila. I made the the models pack for the mod into a "release" mod type. When that mod was in another folder, I was able to generate a dependency cache and debug without issue in pack 1. When I moved the release pack into the same folder, the main pack 1 was no longer able to generate a dependency cache. I got the error: "The header of the Pack is incomplete, unsupported or damaged." It appears that the main pack can sense the presence of the other pack but it still doesn't resolve the 30,000 errors due to "invalid reference to" things in the 2nd pack.

Frodo45127 commented 1 year ago

You don't need to change the pack type to release. Like with any submod, just open the "submod" pack, right-click it, hit "open/open dependency manager", then add the name of the parent pack to the list, then save. If done correctly, next time you open said submod, if the parent packs are in the data or content folders they'll apear in the dependencies panel under "Parent files", and will be used for the diagnostics checks.

gdwitt commented 1 year ago

Thanks for this features. I'm not sure it works though. I found that I can open that tool by right clicking on any folder in the left bar. I had to paste in my mod manually. Saved. Reopened and it still there. However, the 30000 invalids in the error checker haven't changed. The Dependencies list in the bottom left hasn't changed. Is there some feature of the tool that will make the new dependent pack available for "diagnostic checks". Or am I running my diagnostic checks wrong?https://photos.google.com/photo/AF1QipPyzPBkRfo9f0hU4k-fy8_iTdGMOrB9UDczxPs

gdwitt commented 1 year ago

Update: I renamed the dependency with .pack at the end. Closed. Saw no dependencies. Regenerated dependency cache. It now lists the submod as a dependency. I ran the debug by pressing the arrow in the error checker field. I still see 30000 invalid references as if the debug isn't looking at the models "submod". Is there a better way to run the debug than the arrow?

Frodo45127 commented 1 year ago

Can guarantee it works because I'm currently using it in multiple mods. That image link throws an error, so can't see it.

On the dependencies manager, you need to specify the parent pack names with .pack at the end. The exact name of each parent pack in the data/content file.

And you don't need to regenerate dependencies. Just save and reopen the submod and the parent mods will be loaded to the dependencies panel under "Parent files", separated from "Game Files" and "Assembly Kit Files". Parent dependencies are loaded as needed to the cache, not when using generate dependencies cache.

gdwitt commented 1 year ago

Thanks for the reply. I think I have reached the same point you describe in your post. The question is how to get the error checker to see the new dependency. Is there a special way to run "debug" so that it removes the invalid references that are obviously in the "parent" pack that I see in the bottom left dependency list?

Frodo45127 commented 1 year ago

The diagnostic check function automatically uses parent mods for resolving dependencies if they're loaded. If the errors are still there, the dependencies you loaded do not contain the tables needed to fix the errors, or said tables are not readable for RPFM.

For reference, this is how it looks when loading a parent mod as dependency: imagen

You can manually check if the required tables are loaded by opening them from there.

Also, kinda forgot to ask, but what I say it's only guaranteed in the last update, 4.0.19. Not sure what version are you using.

gdwitt commented 1 year ago

Thanks for the picture. I am using latest update I believe. Your program asks me whenever I launch it to update. Two questions: 1) Does the "diagnostic check function" need to be manually started? I only see the error check arrow pointing right. 2) The error checker I'm using can't seem to figure out references to variant meshes. I have 28000 invalid references and I can see them in the loaded parent mod. Perhaps that can be a future feature?

Frodo45127 commented 1 year ago

Diagnostics are always manually triggered. There are two situations in which they can be triggered automatically (on pack open and on table edit), if the relevant settings are enabled, but other than that, a check is only done when you hit the play button.

About variant meshes, what do you mean? What error gives you? And if it's from a table, can you hover the column header and see where it says it's getting its data from?

highwindmx commented 3 months ago

can this "dependencies manager load mods installed from steamworkshop and how? (do I have to copy those packs into the "data" folder which are quite big sometimes)

: update, figured it out, just simply type the pack name in, thanks, nice tool.

btw: I think the manager may need to be improved as a file selector (while not just a db editor)? and does load order matter?

gdwitt commented 3 months ago

I don't recall what I did, but this issue somehow went away after working with it over so many iterations. Valid references are no longer showing as errors. If I get back to modding, I'll study this again. TY.