Before jumping into engine my task was to thoroughly analyze existing open world spawn systems and Central Loot Economy from DayZ in particular.
The research focused not only on the details of the system and its parameters but also the gameplay and play experience that this system allows for and encourages. I was able to share this research with the community and got positive feedback.
From my research, I was able to determine all the parameters that DayZ uses to determine what items need to be spawned and where. My next step would be to start the implementation following a similar approach.
As part of the assignment I was to experiment with Unreal's toolset to the optimal approach to the implementation. This led me from learning and using arrays to data tables and then to the in-built Gameplay Tag Manager system.
I have decided to use Unreal's Gameplay Tag Manager as a data base to store tags and parameters for the system to use when sorting items.
The implementation consisted of setting up the GameplayTag Manager, item data base where each item gets its tag assigned, and the Loot Manager blueprint which sorts the items and places them in the correct locations on the map.
I have created a small top-down level to illustrate the main purpose of the tool which is to have items spawn based on their assigned location, rarity, or any other parameter.
The project was set up in a way to allow quick addition of items, tags or categories of tags. I have created a HowTo document and a short tutorial video to explain how the system works and how it can be modified.