Better Questing

Better Questing

39M Downloads

Using more than a few bq_admin commands causes corruption.

Kalika-Hadake opened this issue ยท 5 comments

commented

This is apparently a known issue per TheLimePixel/Modern-Skyblock-3#740

Is there some workaround or method for marking a large number of quests as complete, say for restoring progression from a previous playthrough in a fresh instance?

Edit: This is potentially related to #261 #324 and #404 now that I've finished searching the open issues.

commented

It is somewhat of a known issue but not something with a single fix. I've been slowly working through all of the various causes and reducing the likely hood of it happening during normal gameplay but the commands still have a high tendency to break it for some reason. Examples where I've tried to fix this include the malformed database file fixed in build 3.5.250, completely rewrote the internal database storage in 3.5.257 to be much more reliable, and just in 3.5.263 I fixed a networking sync corruption issue.

Commands pass through all of these places (and more) and I honestly have yet to find the root cause of how a seemingly non-existent quest is spamming notifications. It's a bug that just won't seem to die and it is as annoying to players as it is to me if not more so. Part of the reason for that is it's actually difficult to purposely put it in that state in my dev environment to debug it. At least now I know that it is still happening and must continue looking.

For future reference, you can actually just copy your QuestProgress.json file from one world to another and that should mostly work fine as long as none of the existing quest IDs have changed. For updating existing worlds just use /bq_admin default load and it'll do the progression migration for you. Even if you do need to manually complete individual quests, I'd recommend using the quest line designer's manual completion tool. No commands necessary and you can just click away at whatever ones you need to reset/update.

EDIT:
runs in circles celebrating
Found it! (or at least one of the root causes). I'll roll out a fix for this with the new GUIs I'm working on at the moment in the next update. Thanks again for letting me know this was still happening.

commented

No problem, I do try to help out where I can. Speaking of, and this is just me spitballing ideas, but if the instability were scaling with the size and/or complexity of the quest database it would explain why this is a known thing for large complex packs and nearly impossible to diagnose in a testing environment.

Of course trying to come up with a way to actually work on such a questbook to test it would be madness. Just maintaining a book of a thousand-ish quests would be enough of a time-sink that it wouldn't be worth it unless you were testing within a pack someone else were maintaining...which would just introduce more variables than it's worth.

commented

Yea, that's my biggest problem in testing. Although there are plenty of packs that have hundreds of quests, I can't just shove a hundred mods into my dev environment and expect it to work. Even if it did, 5min load times per test would be unbearable and not worth the effort. Sure BQ supports loading missing stuff as placeholders but there's no point if none of it functions the same as when it broke.

My current approach to these kinds of issues is to simply rely on people's reports and connect the dots in similarities. Once I find a potential bug I release an update to fix it and wait to see if the same reports come back.

It's a slow process but combined with the huge 3.5.xxx rewrites things have gotten way more stable compared to previous versions.

On a side note I'm working on a simple versioning system which should allow for auto-updating without the use of commands. Less chance of corruption that way.

commented

While it is a large number of mods, I have a pack partially set up that corrupts two specific quests in the same way every time. Whenever the first quest in the first category is completed, one of the other quests on the same page reverts to a default "New Quest" node. Completing any of the other quests on the same page reverts the first quest on the second questline in the same way.

So far the only "fix" I've been able to implement has been manually running /bq_admin default load after the corruption hits.

Here's the Twitch pack profile if you'd like to take a look at it for testing.

commented

Hello, I'd like to add to this issue, a similar thing is happenning to me on my server, when the server would crash or i'execute the default load command, the quest progress would get malformed. The file size iz like 16MB. I'm gonna try to make it smaller today, so I'll report what I find