Search the Community
Showing results for tags 'loot rarity'.
-
Context: I play a lot of insanely rare loot runs on high pop and when I finally looked up the actual item weights, I noticed that they did not create an expected distribution that even remotely resembled what I experienced finding after 1000+ hours of play. The most apparent of which is that Book 5 is supposed to be 12x rarer than Book 1, which definitely does not feel true in my experience. I made another bug report (https://theindiestone.com/forums/index.php?/topic/72133-4178-loot-rarity-rerolls-unintuitively-makes-common-items-rare/) before I fully understood, but in that post, I demonstrated via a sample of 200 rolls in a random Muldraugh house that the resulting loot gave a much flatter distribution than expected. I didn't understand the correct reason why yet, but I think I have identified the reason now. Overall root issue: Zombie Intensity Loot Modifier (returned from getLootZombieIntensity), which I will refer to as "ZPLM" for this post, which is part of the roll to determine if an item is added to a container, is not modified by loot settings or item weight. This means that the rarity difference between two items of different weights is much smaller than their relative item weights would suggest, especially on lower loot settings. I've identified at least 4 separate problems related to this core issue: Low weight items are functionality equivalent in rarity between insanely rare and abundant loot settings. This becomes more apparent the lower the weight of the item. Item weights do not impact item rarity to the expected extent. This means that rare items cannot be made to be nearly as rare as their weights relative to common items would suggest they are. This becomes more apparent the lower the loot setting you are on. Integer RNG (random(10000), so specifically with this level of precision anyways) means the smallest weight multiple that actually impacts the outcome on insanely rare is 0.2. Even without ZPLM, any item with a weight under 0.2 would have the same 1 in 10000 chance of appearing on insanely rare, requiring a 0 on the random(10000) roll. Item weights go as low as 0.01, so this makes them all equal rarity. (e.g. HottieZ, 0.1, and Sledgehammer, 0.01, are equal rarity despite the 10x weight difference) Since item weight is less of a factor in determining rarity, rarity becomes more closely tied to how often items appear in containers than their weight, especially on lower loot settings. This explains my difficulty finding a belt that I explained in my other post. Despite having a moderately high weight (4), "Belt" does not appear in a ton of loot lists (14 hits in proceduraldistributions.lua), which makes it arguably rarer than Sledgehammer (0.01 wgt, 18 hits), despite the 400x higher item weight. Evidence Here's how I understand it to work: (based on itempicker.doRollItem & itempicker.rollItem) Zombie Intensity is loaded from save data per chunk, presumably related to population. I think it is literally the 8-bit value on a population heatmap. For simplification I will refer to it as population. The finer details don't matter too much for the overall point unless it turns out that ZPLM is very rarely relevant. If the average ZPLM turns out to be closer to 4 than 8 then the impact is still there, just less pronounced. Zombie Population Loot modifier (ZPLM) decompiled code derived formula : if rand(300) < Chunk population x 10/255, return 120, else 0.06 + Intensity x 11.94/255 Super oversimplification: Zombie Population Loot modifier (ZPLM) = 1 per 25 zombies, 1/25 chance of max modifier (8) per 25 zombies. Max possible value of 8. Sandbox Loot Modifier (SLM) = {0.05, 0.2, 0.6, 1.0, 2.0, 3.0} doRollItem simplified pseudocode (runs for every item when generating loot for a container, usually 4x): if (100 * wgt * SLM + ZPLM*10) < rand(10,000), add item to container if it does not exist yet, or if qty can be >1 For the sake of further simplification, going forward we will assume ZPLM is always 8, as it will be frequently enough to have a significant impact, especially at higher population settings. I think in practice it is almost always 8 in any moderately populated chunk, but I haven't been able to verify that since I don't know exactly what it is reading for the intensity value and how much actual zombie population (after population modifiers) comes into play. Example outcomes: Sledgehammer (0.01 wgt, or 0.01%) vs Battery (20 wgt, or 20%) drop chance Expected distribution - 1 : 2000 -------------- insanely rare (5%) ------------------ 0.01 wgt: if (0.05 + 80) < rand(10,000), or 0.8% chance 20 wgt: if (100 + 80) < rand(10,000), or 1.8% chance Actual distribution - 1 : 2.25 -------------- rare (60%) ------------------------- 0.01 wgt: if (0.6 + 80) < rand(10,000), or 0.8% chance 20 wgt: if (1200 + 80) < rand(10,000), or 12.8% chance Actual distribution - 1 : 16 -------------- abundant (300%) ------------------ 0.01 wgt: if (3 + 80) < rand(10,000), or 0.83% chance 20 wgt: if (6000 + 80) < rand(10,000), or 60.80% chance Actual distribution - 1 : 73 Put A LOT more simply, it looks like you get up to a flat +0.8% chance for every item to drop based on the zombie intensity / population in that chunk, not scaled with any other loot modifiers. This brings the rarest items almost up to the same drop chance as common items on the rarer loot settings. This also effectively sets a "minimum" drop chance of 0.8%, which is much higher than the expected drop chance of something like a Sledgehammer with a weight of 0.01, which would be 0.0005% on insanely rare, or rounded to 0.01% due to integer RNG, making it 80-1600x more common than expected based on weight. This is just speculation, but to me it feels like the max value of 8 (seems arbitrary) may have been added to address this. Additionally, a lot of the code around Zombie Intensity calculations seems to have some lines/assignments that don't appear to do anything. It's possibly an issue with my decompilation of it, but I've used the code pretty thoroughly and never seen any obvious issues with any of the other code.
- 2 replies
-
- loot
- population
-
(and 4 more)
Tagged with:
-
The problem 1. I've played 8 hours in Sandbox mode with modified options as it is shown on the screenshot (Melee weapons - Common / Ranged Weapons - Abundant / Ammo - Abundant) but I have noticed that Firearms and Ammo are NOT spawning more often than on default "Rare" settings. Melee weapons do spawn more often. 2. It is unclear what "Abundant" means. Is it 2x more often? Or 20x? Or this option affects the map generation rules and defines whether CONTAINERS that *may* contain weapons (wardrobe with two halves / nightstands) spawn in houses? Or this option is not supposed to affect the "chance" of weapon to spawn but only increases the quantity? 3. Firearms still spawn where they originally can be found. No extra "sources" of weapons. Proposed solution 1. It would be nice to introduce separate numeric multiplier options similar to how zombie multipliers work. "Ranged weapon quantity multiplier" / "Ranged weapon chance multiplier" / "Ammo quantity multiplier" / "Ammo chance multiplier". 2. Clarify the descriptions so that a user would know what to expect from this options. 3. Introduce a very small chance for "extraordinary" items (like weapons, nails, seeds, special magazines or skill books) to be found in common places - on civilian zombies and normal book shelves for example. 0.1% chance by default could work - in fact there is a slight chance that a civilian could have a holster with a gun in it or a box of ammo. The multiplier however could increase this chance (say, a 30x multiplier will turn 0.1% into 3% chance) which means that what is supposed to be "abundant" will be "abundant" not only in special looting locations but overall on the whole map. Description Initially I wanted to benchmark all weapons in the game on runner zombies. I increased zombie stats and make them always run. I set spawn rates of weapons/ammo to "abundant" and expected that I will find a lot in the houses all over the map because I knew that there is a decent chance to find a gun case with weapons in a normal house in a double wardrobe. I picked a "lucky" trait on my character to increase the chances of finding weapons even further. However, after playing and looting a couple of houses I realized that not only I can't find "all types of weapon in the game" - but I can't find ANY firearms at all... I was killed numerous times because even a small group of 2-3 runner zombies with increased stats is almost unbeatable in melee. I tried with "lucky" trait and without it. In 8 hours I managed to find 1 rifle, 2 pistols and numerous shotguns however it's not super rare to find pistols and shotguns in just normal houses with two floors and wardrobes even on "rare" setting so I didn't notice the difference... and weapons are by far not "abundant". Because Abundant is supposed to mean that there are a lot, right? Or at least this is what a user expects. This just doesn't feel right. It may be that "lucky" trait overrides the modifiers of the loot spawn that I chose in the sandbox menu. It may be that weapon rarity modifiers do not affect GUN CASES containing weapons, but only affect the spawn chances of weapons themselves... which are not the main source of weapons because in civilian houses GUN CASES are seen more often. It may be that the difference is just not significant enough to be recognized. Like, if the default chances are 1% per wardrobe and "abundant" increases it to 4% per wardrobe it still means you will spend weeks trying to find what you look for.
- 1 reply
-
- sandbox mode
- loot amount
-
(and 3 more)
Tagged with:
-
This is 1993 Kentucky. Am I really expected to believe all of these people died to slow and stupid zombies without having time to get their home defense firearm? I expect them to not have ammo left most of the time, but seriously, what's with the lack of personal defense weapons in the pockets and under the pillows?
- 3 replies
-
- weapons
- weaponsfirearms
-
(and 2 more)
Tagged with:
-
Ok so first off I'm not sure if anyone has suggested this idea or a similar idea before. If any such posts exist please point me in that direction so that I may link them here. I kind of find it hard to believe that no one else has thought of this idea in the past but I could not find anything on the subject. So we all know how loot respawn works in sandbox games, you set the loot respawn interval and the loot rarity of specific types of loot. Here is a refresher image if anyone has forgotten what all of the default options are. We also are all probably familiar with the way utility shutoff works in sandbox games, you set the option to adjust the amount of time the utilities stay active. Here is another refresher image if anyone needs to familiarize themselves again. Now for the suggestion, what if we mixed those two mechanics? You would set your 'Starting Loot Rarity' as normal and you would set your 'Loot Respawn' interval as you currently do, except there would be a couple of new options. I propose that we add a 'Loot Rarity Interval' option to change the loot rarity of the world after a certain amount of time has passed (similar to how the utility shutoff works). For example, you would set it to '0-30 Days' and after that amount of time has passed the loot would tick from 'Normal' down to 'Rare'. Obviously you would need to have loot respawn enabled to refresh the world and make this work (so you would have the new rarity interval options greyed-out if loot respawn was disabled). I would also suggest that a checkbox option be added to allow loot respawn drop to 'None' as a final tick after the 'Extremely Rare' loot tick. Here is a picture of what something like this would look like in the sandbox options (mini-suggestion, stick all of these options on a separate tab labelled 'Loot'). Basically options like these would allow you to simulate active looting over time. What do you guys think?
- 5 replies
-
- loot rarity
- loot respawn
-
(and 1 more)
Tagged with: