Updating mod, error message that is apparently from loading basegame textures

Started by themaster6869, July 28, 2021, 02:59:11 PM

Previous topic - Next topic

themaster6869

hello, I've been working on updating a mod of mine, however when I launch to test I get a massive error string (attached) where it states that it cannot load several textures from the base game, does anyone know were this issue may come from?

RawCode

read about version compatability mod folder structure.

your textures must be placed into "common" folder and referenced properly from data and code.

themaster6869

I looked into that and tried putting the textures in a common file, putting the textures in the 1.3 file, and putting everything in the common file, asof now my mod is not intended to be multiversion

themaster6869

Could you elaborate on what you mean by referencing properly, I think that might be were the problem lies

RawCode



RawCode

you should update you mod on clean setup and absolutely should not allow other outdated mods to be present

Mod Children and Pregnancy - Testing v0.4a is version from pre 100 times, why you ever have it, it obviously won't work on 130.


in your case, core mod failed to load properly, there are many possible reasons for this, start from running game without mods at all, to make sure, that you have not damaged base game and do not have any 3rd party files inside base folders.

if you drop some mod directly into core folder, various semi random things can happen, and file verification won't help, because this is additional files and not damage of files of game itself.

Canute

Even when you don't activate outdated mods, RW parse through the Mods folder to check the about.xml and that slowdown the startup process abit.
When you keed the same installation folder, you should delete the Mods folder each new RW release.

Like RawCode said, disable all mods, check if the vanilla game run's without error.
If not, delete the Data folder and repair/reinstall it.

If you want update a mod, you should only load the nessesary files. Core, maybe DLCs, required mods and the mod you want to update.
And not all kind of other mods that give out extra errors.


themaster6869

The vanilla game runs without any of these errors, i checked it without those in the mod file and there is no change, ive been playing the expansion for hours with those in the folder with no issues, this issue is only present whenever I activate my mod from the mods section, issue apears to be that it is screwing with the default path for rimworld textures, attached is the error log when it is run with nothing else in the mod folder

RawCode

post your mod data then, problem cant be solved without attempt to reproduce and observe it


RawCode

very curious issue, but can be fixed in minutes

1) open vanilla charge weapon (RangedSpacer.xml)
2) check what classes vanilla uses
3) make sure that your weapon (and verb and bullet) use same classes as vanilla (case sensitive!)

4) to understand what and how, open BaseWeapons.xml, each level of abstract def just add few fields to all and every abstract def in chain.
adding same fields does not hurt (in theory) but adding same list, will multiply fields in that list (and can hurt).

your issue is NOT related to folder structure or texture references, pasting your def and textures into 100% valid mod structure result in exactly same cascade of errors.


RawCode

explanation on error spam:

if your def cause vanilla database constructor to fail with exception (in unexpected place), normally by containing no required reference, containing invalid type reference, or other issues, like referencing wrong class, entire loading process fail and game go into undefined state.

since place of exception is unexpected, game can't report what def caused issue and what exactly issue is.

method that trigger NPE is CalculatedBaseMarketValue, this means, that inside that method, something like "null.callmethod" happened.

what exactly can be determinated with debugger, hacked unity project or just by injecting into CalculatedBaseMarketValue and adding some exception handling or sanity checks here.