First off, I have no idea of the actual server architecture used in the game, and this post is going to be made up of observations and some hypotheses based on those observations. (I also apologize in advance, it seems that this post has gotten a bit long.)
One thing I've noticed over my time playing the game is some interesting patterns with how loot is generated, both from down enemies, as well as random containers such as coolers, trashcans, ammo boxes etc. I have developed some theories as to what is going on.
First off, there seems to be a dedicated core/server asset that is responsible for generating loot. Some of this loot is pre-generated based when an enemy is rendered, and in other cases the loot is only generated when examining a dead enemy or a loot container. I believe this is why you can kill a hand full of super mutants and their loot loads instantly when looking at it, but if you look at a legendary dead super mute it takes a few seconds to several minutes to load. The regular enemies are pre-stacked with the loot or at least a smaller loot table that gets polled, but when you look at a Legendary it's as to access a much larger loot table to generate your loot, plus the regular loot table.
On top of that certain other situations can also cause a double queuing for loot search you do. For example I have noticed that when you encounter a dead enemy in a nuke zone, there are two requests to this Loot generating asset. Once for the normal loot, and a second time for the nuke site related loot such as irradiated fluids, harden mass. And of course if the enemy is a dead Legendary, you now poll the generation table 3 times, as it's got to generate loot from the Legendary table, the normal loot table, and now the nuke crafting loot table.
What's interesting on the Nuke loot table, is I've noticed that it's the last thing processed, and the game does allow the rest of the loot to load in some cases before making the request to the loot generating asset for the Nuke drops. You can see this in action if you visit a nuke site, kill an enemy, and the loot table generates, grab everything then revisit the dead body/meat pile and you'll notice it will start to do another loot generation task.
The weird thing about the Nuke generation table that I've noticed is that it doesn't seem to always check to see if you caused damage to the dead enemy, before running the check… if at all. I know I've gotten nuke materials off of corpses that were there before I was in the area to even hit the target. It will also run the check on corpses that shouldn't generate nuclear material, making me think that rather than blocking the polling from the beginning, the servers are running the check, but then hiding the loot generated due to a rule. The best examples of this I've seen are the robots at Whitespring and Watoga. They do not generate nuke loot but they seem to run the generation process before displaying the inventory. An example of the rule in question can be seen with the static loot across the map. This loot is always generated when you load, and then a mask is applied if either: A.) you've picked it up within the last 12 – 24 hours. or B.) if someone on the server has already collected it on that server instance. I've even seen the rule applied in real time, for example if I load outside the whitespring's bunker service entrance, on top of the building is some Military duct tape, a screw driver, toothbrush, and a box of cleaner. While I'm doing my vendor run I'll typically swing up there and grab some of the items before heading inside to the vendor. If I revisit the area before the timer is complete, and I'm quick I can run up there to see those items, briefly before they vanish.
It seems when you look at a corpse or container you generate a request that get's queued. It's why you can run around and look at a bunch of dead enemies and not see loot, but then cycle back with the first and re-search them and find the loot has populated. This also might explain why if you are the first person to look at the SBQ when she falls, you tend to get your loot to generate faster than everyone else in the area, as you were the first loot request in the queue, while else's request queues behind you and are processed one at a time.
What's interesting about this dynamic, is you can almost use it to judge the health of the server and the likelihood of an upcoming server crash/disconnect.
Server is in good shape: Normal enemies, Legendaries, and containers all load quickly.
Server is stressed: Normal enemies load fine, everything else takes 20 – 50 seconds to generate.
Server might crash soon: everything takes forever to load, including normal enemies outside of a nuke zone. Items, even normal items, take forever to show up in inventory after pickup, and for the weights to get processed correctly.
I believe there is some sort of resource leak associated with the loot generation that is actually the primary reason we see server crashes, rather than just chalking it up to duping, but the dupers are an easy scapegoat for the issue at hand to take the blame for the current state of the servers.
When the loot asset is heavily tasked, it seems to slow down everything from inventory transfers, to missions completion indicators from triggering properly. I've personally been on a team that completed an event, but we didn't get the notice that it was complete until we were halfway through our second event when the server is in this state.
Again I have no access to any of the code, or the way the requests are handled to confirm, but it seems to me that either if the "Can I loot this" check was done first instead of last, or if meat piles/corpses were hidden/non-searchable without a player/teammate tagging it, would greatly reduce the overhead on the servers and improve the stability of the game. Of course I could be completely wrong and the eligibility check is what is actually causing the delay.
TL;DR: Observed server workload based on loot requests:
Most taxing – while inside a nuke zone both Legendary drops and SBQ with multiple people checking the loot.
Taxing – all non-legendary corpses and meat piles in a nuke zone. Legendary's outside of a nuke zone. Cryptids.
Mildly Taxing – Containers. Vendor tables.
Least Taxing – regular enemies outside of a nuke zone. Containers with pre-set loot. Power armor chassis.
Source: Original link
© Post "Loot loading observations, or because we now love the bomb." for game Fallout.