Zach Taylor Work Blog (Wk12)


Total Weekly Hrs: 9 Hrs

Quest System: 7 Hrs

Troubleshooting / Bug fixes: 2 Hrs

I found out that I overlooked an issue I was having where the player can accept the same quest infinitely. I had to look through all of the different blueprints and actor components to try and find what the issue was stemming from. I had questIDs linked to a unique node within the Quest Base and thought that was supposed to be the main reason to not have duplicate quests. 


(Fig 1)

(Fig 1) Is how the quest duplication issue would appear in game through the Quest Log.


(Fig 2)

Through looking at past tutorial videos for the quest system I was able to find that I did not link the QuestID to the contains node in the Query Quest Active function. In (Fig 2) I made the link and was able to no longer get duplicate quests. 

(Fig 3) 

I created a new blueprint with a Save Data class. I named this MySaveData and created three functions within the blueprint. The functions are SaveQuestLog, LoadQuests and SaveQuestDetails. In (Fig 3) I have the SaveQuestLog where the function has an input of the quest log and then saves the current progress of current active and completed quests. This is done by setting their arrays within the function. 

(Fig 4)

The LoadQuests function is responsible for actually loading the quests upon loading a save file. The function is shown in (Fig 4) and uses a loop that finds the current quest progression through a QuestSaveData struct. After this is found the current active and completed quests are once again updated. 


(Fig 5) 

In (Fig 5) the SaveQuestDetails function is shown and it adds the Quest ID, objective progression and stage into the Quest Progres save data. 


(Fig 6)

(Fig 6) is the FQuestSaveData struct that is mentioned in (Fig 4) and (Fig 5). This assigns the profess and current stage of quests to an integer.


(Fig 7) 

I then created a game instance shown in (Fig 7) which is data that would persist across levels (the game itself) The instance looks to see if there is existing save data in a specified slot, if there is the data loads, if not, new save data is created. 


(Fig 8)

(Fig 8) is within the BP_Player event graph and it makes it so the player presses “2” to save their game. The game instance is called and the quest details along with the quest log are saved to a specified game slot. 


(Fig 9)

In (Fig 9) a quest rewards widget was created upon meeting all of the objectives for a quest. The white boxes will display the rewards items and the quest is completed/ rewards are collected upon the player pressing complete. Quests can also now be required to turn in or auto-completed based on how they are assigned in the quest data table.


(Fig 10)

A quest tracker widget was added to display updates on the side of the screen if the player wants to. (Fig 10) is showing the active “Witch’s Woe” quest and the objective of finding their comb beneath it. 


(Fig 11)

(Fig 11) is the Quest Log with a track button added that allows the player to set which quest they want to track on their active game screen. 

(Fig 12)

(Fig 12) shows an event dispatcher that is called when the track button is pressed within the quest log in (Fig 11).

(Fig 13)

(Fig 13) shows the OnTracked event being called within the quest log to display on screen like it does in (Fig 10).

(Fig 14)

A QuestGiver actor was created so that a player can auto accept a quest. I feel that this would be best used for finding collectables or killing certain creatures. The quest data now has a boolean that can be set to whether a quest is auto acceptable or not. (Fig 14) shows the event graph for the actor and the GiveQuest custom event.


(Fig 15)

(Fig 15) shows the Achievements side quest that was already given to the player when they spawned into the game through the quest giver actor that is shown in (Fig 14). The rest of the time spent was working out bugs of the quest system. There is currently an issue where if the player is tracking the main quest while they complete it they can no longer track any quests on screen (but the information is still updated in the quest log). The goals for the upcoming week will be to fix this bug, add images for rewards, add all of the collectable items and to update the inventory system with a video referenced to me through a peer. 

Get Soul-Ladra

Leave a comment

Log in with itch.io to leave a comment.