Better Questing

Better Questing

39M Downloads

[Suggestion] Questline Collaboration Features

z64555 opened this issue ยท 2 comments

commented

I got myself in a bit of a situation with Enigmatica 2, I was making additions to a quest line (specifically the AE2 quest line) on E2 and then was not able to complete it in time before the pack was updated.

I come to find out that my edits to the quest book could not be easily integrated because the update included changes to the quest book in other areas. Not wanting to remake the changes, I looked for ways to try to export only the quest line I was working on so I could then import the changes into the updated pack. So far, the only way I could export them is to:

  1. Delete ALL of the other quests and quest lines
  2. Save what remains into that DefaultQuests.json
  3. Rename DefaultQuests.json to MyQuestline.json (or similar)
  4. Copy MyQuestline.json over to updated pack instance folder
  5. Import MyQuestline.json in the new instance.

The hitch is with step 1, For smaller quest books this is acceptable, but E2 has a lot of quests in it, meaning I'd have to click the delete button in the 'Add/Remove Quests' menu over a hundred times and pray that I don't accidentally delete one of the quests (because then I'd have to start all over again).

What would be great for quest book collaborators such as myself is to have an 'Export Questline' feature, similar to the existing "Import Questline' feature but working in the reverse. It would export a selected quest line and all quests therein to its own .json, which would then be imported by the pack author to replace an existing quest line. Should the quest line be the same name as one already existing in the quest book, the user should be prompted to:

  • Overwrite All - Overwrites quests and their placement in the designer, and imports new quests
  • Overwrite Quests - Overwrites only quests, not their placement
  • Only Import New - Does not overwrite anything, only importing new quests

Another good feature would be the option to delete the quests within a quest line, not just delete the quest line and then have to delete all the quests one-by-one. This is a good feature to have in case the pack author decides the quest line isn't needed anymore or was able to do things differently.

commented

The first part where you can selectively export database sections instead of the whole thing isn't too difficult but the second part where the importer auto-detects similarities is much harder. There are times when pack devs intentionally have almost identical copies of quests such as when there are two different difficulty variants.

Bulk quest management is a thing I want to add in future but at the moment that's not particularly possible till all the legacy GUI code, particularly in the designer screen, is long dead and gone. Not even the networking is really setup for bulk edits (I'm am very aware of how dumb that setup is now).

For now, all I can suggest is rather than working within the existing pack's quest lines, make a separate single player world for only that modified quest line and work on it there. That way you can just import that file and only those quests as if it were exported separately. Trying to modify an existing pack while not in charge of the original files is somewhat of a difficult thing to support not to mention the amount of uses I predict this having is pretty limited.

commented

Ah, I had forgotton about difficulty modes, so the smart import might not be worth the effort.

Bulk quest management does seem to be increasingly desired as pack authors get more inventive, elaborate, and complex with the questlines. I think collaborative authors can get by with just the export feature, but maintenance on quests once they're integrated in the main pack will require editors to load the main pack.

And yeah, that's my plan for future quests I'll be making, to have a trimmed down modpack to make the quests and then integrate that into the larger pack when publishing.

Thanks for the reply, and keep up the good work. :)