VazkiiModsArchive / DataFixerSlayer

Kills the vanilla DataFixer to save on ram yay
4 stars 1 forks source link

DataFixerSlayer causes some structures from Dungeons Plus and Savage and Ravage (& possibly more) to not load #2

Open BugmanBugman opened 3 years ago

BugmanBugman commented 3 years ago

The affected structures that I’ve found so far are the tower from D+, and the pillager outpost replacement from Savage and Ravage. I noticed this peculiar issue when those structures weren’t able to be located, and I delved into it. Eventually I discovered that it was fixed upon removing DFS. I tested the game with these mods, and can confirm it

Vaelzan commented 3 years ago

EDIT: The below comment of mine is wrong. After reading Moleculor's comment below and doing some testing myself, I can verify that it is only breaking structures that have outdated NBT data.

From what I've seen more recently, it can break any and all Jigsaw structures. For example, the generation from The Conjurer has been impacted in my own testing, and I can second the Savage and Ravage outposts breaking.

I have no idea WHY it's doing this yet, but I'm hoping that there's a way to remove the DataFixerUpper in a way that allows Jigsaw generation to be unaffected.

Moleculor commented 3 years ago

TL;DR version: Dungeons Plus and Savage and Ravage are probably using stuff left over from 1.12 or 1.15, and may be able to fix this issue on their end by updating their data to 1.16/DFU-ized data. (They may even see a performance increase in world generation, doing this.)


Over in the Minecolonies/Structurize Discord, someone was posting about how blueprints they were trying to build/paste in to the world were missing large chunks of blocks, etc.

Some conversation later, it was narrowed down to a DFU-killer mod of some kind. I don't remember if it was Vazkii's DFS specifically, or RandomPatches, or what, but the problem was verified to happen with both.

At first it was suggested that the problem should be reported as an Issue here, but I had a sneaking suspicion that was possibly the wrong approach.

So I loaded a world with DFU running, pasted in one of the blueprints that breaks with DFU disabled (which of course pasted in fine, since DFU was not disabled), scanned it, and closed the game. Then I installed a mod to kill DFU, loaded it up, and pasted both my rescan and the original blueprint.

image

Left one was placed without anything running that interferes with DFU (just Minecolonies running). Middle one was a scan I made of the left one without anything running that interferes with the DFU but placed after running with a DFU disabler. Right is the current brokenness that is old scans + a DFU disabler.

The answer: All the old blueprint/schematic/whatever files still use data that DFU has to convert to the new data format. If DFU is disabled... the blueprint breaks. Because it needs to run through DFU first.

The Minecolonies folks are now going through a full rescan of all blueprints (I'm told it's not as much work as it sounds) to "work around" the issue... and it honestly sounds like the "issue" is that mods are working exactly as they're told to work. People/mods are trying to bring 1.12 or other wise old data in to a 1.16 world without DFU running, and stuff is breaking, because DFU isn't running.

While I can't say whether or not DFU-killer developers can or should build in some form of compatibility (since I think that might only be doable by defeating the entire purpose of the mod?), it's possible that Dungeons Plus, Savage and Ravage, and others might be able to solve the issue themselves by simply updating their data to work without DFU running. A simple rescan in 1.16 would probably do the job.

(Hopefully this helps and is relevant, and I'm not misunderstanding the issue.)

SilverDavidMC commented 3 years ago

This issue was recently fixed in Dungeons Plus. If anyone knows of a way to use the data fixer to update structure files automatically, that would be greatly appreciated as some mods may have hundreds of files to update.

Moleculor commented 3 years ago

Mod developers would likely be able to figure it out from this and this?

Vaelzan commented 3 years ago

As Moleculor mentioned in their first comment, I think you could probably learn a bit by chatting to the MineColonies / Structurize developers, who have a (semi-?)automated process to scan their structures. I've noticed them doing it relatively frequently with an absolutely massive number of structures (potentially the most of any Minecraft mod in existence), so I believe it is indeed something that they've nailed down a solid process for.

Vaelzan commented 3 years ago

Regarding this open issue, I believe the best fix for this would be to add a warning message to the CurseForge description and the GitHub readme for DataFixerSlayer, including details on how mod developers can work around the problem (or a link to more information), then close out the issue, since this isn't something that I believe can be fixed in code due to it actually functioning as expected (unless there's some way to disable it for the world but enable it for structures).

ravenbuilder934 commented 3 years ago

As Moleculor mentioned in their first comment, I think you could probably learn a bit by chatting to the MineColonies / Structurize developers, who have a (semi-?)automated process to scan their structures. I've noticed them doing it relatively frequently with an absolutely massive number of structures (potentially the most of any Minecraft mod in existence), so I believe it is indeed something that they've nailed down a solid process for.

Hi, I'm the person from the minecolonies team who recently rescanned all our schematics (over 3,000). We have auto-scanners set up using command blocks and redstone (each command block runs a command to scan one schematic) which is how we do it so fast 😄 The auto-scanners do need to be triggered manually though by pulling a lever

2021-01-18_12 01 10

^ Bad pic of autoscanner setup

Nightenom commented 3 years ago

Well, I personally don't care about mod devs who can update their files "easily", the point with our mod (structurize/minecolonies) is that ppl have made their own schematics in older vanilla versions and we have to update them. I'm gonna just yell at chat if there fake DFU found and the player tries to load old schematic as "workaround"

TelepathicGrunt commented 3 years ago

Personally, this just goes to show that DataFixerUpperSlayer and others like it should only be used in a development environment and not in production. There’s a lot of things that DFU does behind the scenes and killing it leads to weird stuff like this. Even the original person who made a mod to disable DFU added code to make sure it crashes when used outside a development environment for this reason.

TheGamersBrew commented 3 years ago

So seems like this mod is also effecting Waystones by preventing the Waystones from spawning in or near villages. I know given the way the conversation is going seems to indicate that this might be cause they are using structure files from older versions of their own mods.