“Fixing Quest Persistence in Save/Load”
Author: Cody Jandes
Posted on : November 20, 2025
The Problem:
During the final week of production, my main challenge was getting the quest log to be persistent through the newly implemented save/load systems. Before the saving and loading was added, the Journal Menu and the Objective GUI were functioning as intended. However, once our team added in the save system, the quest and objectives displayed had fallen out of sync. The quest log itself would not populate correctly and the objective GUI was inaccurate as the player would play through the game. When playing the game, the user would have incorrect UI feedback, no objective, and no quest log to really give them any guide or sense of what to do in our world. This essentially left them “flying blind,” per say, and unable to rely on the UI to help them navigate through the game as intended.
The Solution:
After stepping through the save and load system that had been implemented, I discovered the root cause to be how the quest array was being initially stored. The quests themselves are defined in Unreal within the blueprint of the Journal Widget, but the quests were attempting to save them by looping as if the quests were made in code. By the time the file would save, the array would be unpopulated because it was not getting the chance to fill the quests array using the data from Unreal. Hence, this would give us our empty quest log since in code, our array was being saved as empty.
In order to resolve this, I began debugging the quest saving code to see where the array was being saved or over written. This helped me to find that instead of trying to rebuild the quest array during the save process, we could simply store the existing data in the array directly. By preserving this array as it was made, Unreal was able to correctly read the Blueprint created quest and restore them more accurately. I added a dynamic function to check for a refreshed list so that the quests set in Unreal could be dynamically refreshed to the list before the game even starts and the player can access that menu.
With this fix in place, the quest log persists as intended, even with the save and load functionality. The Objective GUI itself also accurately reflects what the player should be actively doing at that moment. The player can now lean on the UI to guide them through the game’s primary objectives, even after they restart the game or loading back into a session. This brought the final core system online for our final build and made sure that the user has a consistent and intuitive experience from beginning to end.




