budak7273 / ArmorModules

Satisfactory mod. Expansive yet balanced modular equipment system.
https://ficsit.app/mod/ArmorModules
Mozilla Public License 2.0
4 stars 1 forks source link

Duplicate milestones in Tier 2 #8

Closed maskedmouse closed 2 years ago

maskedmouse commented 3 years ago

Describe the bug The Armor Module Crafting Components and Armor Module Alternate Recipes are listed multiple times in the Tier 2 milestones.

To Reproduce Start New game Go to Hub Tier 2 Research Biofuel Powersuit milestone Open Hub again and observe the many times (7x?) listed of the components and recipes for the suit.

Expected behavior Only to be listed once for both, after the Biofuel suit is researched.

Screenshots Milestone bug

budak7273 commented 3 years ago

This is actually an issue that can affect any mod that adds schematics with dependencies. If enough of these duplicates build up, it can actually make it impossible to join your save.

To my understanding, it is a problem within SML itself, and it should be fixed in the next SML version.

In the mean time, you can use Goz3rr's save editor's 'Deduplicate Schematics' cheat to get rid of the copies.

Please let me know if you encounter any issues with this.

budak7273 commented 3 years ago

Actually, I'll leave this issue open until it's fixed in SML so other people can see it.

maskedmouse commented 3 years ago

I've had a save game before that didn't work anymore due to one of these bugs. 100+ Milestones was one of them. I had seen a post about the reliable buffer overflow that was caused and Snutt replied that they had been in contact with the modding community to address this issue. As some modders made a mistake with the implementation. https://questions.satisfactorygame.com/post/5f4ffae26f3c82fe950bcd4f

All I could find was the documentation about registering the schematics and there it also states about duplicates:

To register now a schematic you can simply call the Add Available Schematic node with the schematic class as input. Problem is, if you were to do just this, every time PostInit of the InitMod is called (for example when the game loads) the schematic will be added multiple times and show up in the HUB multiple times. To prevent this, we need to check if the schematic is already "registered" by getting the available and purchased schematics list with the corresponding GetAvailableSchematics and GetPurchasedSchematics and then we search for our schematic. If it is not in one of these lists, then trigger the node to add it.

That information could be helpful. But I don't know since I'm not a modder for Satisfactory. Else I'll just wait for the fix in SML then. Do you have a link as a reference which states this duplicate behaviour is caused by SML?

Thank you for your time

budak7273 commented 3 years ago

You should be able to use the save editor to recover that broken 100+ milestones save you mentioned, if desired.

The docs page you got that snipped from is outdated - the docs search can send you to old versions of the documentation. We don't have a good indicator of when you're on an old page right now, unfortunately.

This is what the latest version of the page currently reads:

To register the schematic we can use the newly created InitMod and add the schematics to the M Schematics array of the InitMod. Double click on InitMod to edit it and add your schematic to the M Schematics array.

The fact that many people didn't do this checking in the past was one of the reasons that InitMod (SML provided) was changed to offer this out of the box. Unfortunately, the checking code does not work in some regard for schematics with dependencies.

For example, I have the Crafting Components schematic set to require at least one of the suit schematics be purchased before it can appear: image

I don't think it's actually written down anywhere that the problem is on SML's side, but you can ask about it on the Discord to confirm it if you'd like.

maskedmouse commented 3 years ago

I see, thank you for the explanation. I know I can recover the broken save, I've already done so but friends and I wanted to start over before Update 4 lands. If this new save gets broken I know how to fix it with the save editor. Still hope this bug gets fixed in the near future though.

budak7273 commented 3 years ago

My guess is that the next SML update will come out after either Update 4 or the engine update, whichever comes first.

I think it would be possible for a mod to be created that automatically de-duplicates schematics on game load. You might see one come out before then, but I wouldn't get your hopes up.

jlee2109 commented 3 years ago

Just to add more onto the reporting.... I see this issue both in Tier 2 and Tier 4. Once unlocked, the duplicate entries are also unlocked.... but there are still duplicates.

budak7273 commented 2 years ago

Issue fixed by SML3