I tried to start my game with a hand-written quest that has been assigned to the quester's journal in the editor, but QuestTags (like "{QUESTGIVER}") are not replaced. If I hand the quest from the questgiver, this is not an issue.
Do I have to use SaveSystems in order to call ApplyData from QuestJournal.cs?
Yes, you can start a game with a quest that's assigned to the player's quest journal. If you have assigned the quest's Quest Giver ID field, then {QUESTGIVERID} will be set.
However, other tags will not be set because that information is typically stored on the quest giver, such as the quest giver's name and text table. To associate this information with the quest, you must call the quest's AssignQuestGiver() method. It accepts a QuestParticipantTextInfo object.
var playerJournal = FindObjectOfType<QuestJournal>();
var quest = playerJournal.FindQuest("Some Quest");
// For this example, we assume the quest giver GameObject is named the same as its ID:
var giver = GameObject.Find(quest.questGiverID.value);
quest.AssignQuestGiver(giver.myQuestGiverTextInfo);
Tony Li wrote: ↑Wed Jan 30, 2019 11:28 am
However, other tags will not be set because that information is typically stored on the quest giver, such as the quest giver's name and text table. To associate this information with the quest, you must call the quest's AssignQuestGiver() method. It accepts a QuestParticipantTextInfo object.