I’ve had to spend quite a number of hours now on my project trying to figure out the loot situation in UEFN and unfortunately, I’ve found that it really leaves a lot to be desired.
The biggest problem is that the default loot containers have predefined random loot and we have no access to change the random loot that is spawned in our game, or its drop rate. Frankly, if I could just remove 2 items from the loot pool, I would be able to just use the default loot containers. Sadly, despite a lot of searching, I still have not found a way to modify the default loot of the in-game containers, and sadly some of Fortnite’s base game items break my island’s gameplay.
This problem is further complicated by the fact that the default loot containers are blueprint classes that are abstracted away from UEFN/Verse, are not descendants of the BuildingSMActor hierarchy, do not have Verse relevant interfaces and, therefore, have no Verse events or no way to interact with them. As a result, we cannot make child-derived blueprints, code behavior in blueprints NOR can we access any of the loot containers in Verse. These together make it very difficult to implement custom loot containers that are randomized without making our own Opened and Closed Meshes.
Currently the only event/game logic connection possible (that I can tell) between existing Fortnite Loot Containers and Verse Devices is the functionality of the Tracker device, which allows a Verse event to be fired when any chest (I presume it applies to all containers) in the world is opened. I have seen several clever people show how to do this on Youtube; however, while this technique of using a tracker to track chest opening and spawn loot works, it has a major limitation: there is no way have a different randomized loot pools for different containers, as the event fires for all containers equally and the event contains no information regarding which container was opened.
So all of this really leaves one option: custom loot containers made entirely in Verse using imported static meshes or props. The problem here is that we essentially HAVE to import custom meshes, as most of the static meshes used on the default containers are locked away from us (a.k.a. Cooked)(Aside: I seriously wonder why Epic doesn’t give us access to the base game meshes. Does Epic not own these assets? However, this is a broader concern: We really need to be able to use more base game mesh assets, even if we are just allowed to reference them on StaticMeshComponents. One of the main appeals of building a game within the Fortnite Ecosystem is the ability to reuse assets and game pieces that are already built and build fun experiences without needing to shell out for assets. This appeal is greatly diminished without the ability for us to use these cooked assets). Because the meshes are cooked, and we don’t (to my knowledge) have a legal or approved way to uncook the assets, we cannot uncook and reimport the assets to make any props or devices look like the existing containers in the game. Neither can creators use the existing containers if the default loot pool is problematic for our experience.
I have found that there are a few of the container meshes that can have their references copy-pasted to a different Static Mesh Component on a prop, but most of them don’t work.
This basically leaves us with the option of using our own meshes. For loot containers, we would need either 2 meshes (a searched and unsearched/ open and unopened version) or an animated mesh. Finding such a thing online can be very difficult, especially for free. Given that most of creators are not professional artists, and even more are not even professional game devs, it would be much better for all creative Fortnite players if we had better access to base game assets.
I hope we can get some improvement here.
The easiest solution for you guys (Epic) to implement would probably be to create a wrapper object for the base game containers that fits the BuildingSMActor hierarchy and is exposed to verse. And I really hope we can have some solution to this soon. It is currently easy to implement a custom loot box, but to make one that looks good without buying or making custom assets is far harder than it should be. (Assuming you want a loot box that doesn’t look like the default Chest.