Jump to content

Recommended Posts

  • 5 months later...
Posted

Yes, but I'm looking at whether or not there is a shift pattern. For example the table sequence seems to hold for the Gilded Vale Inn chest, but you have have to add +1 to the current day. For example Rymgard Cloak is listed as Day 20, but for me it is there on Day 19. Same with Overseer Ring listed on Day 9, but it is there for me on Day 8. A sample size of chest is hardly conclusive, though.

Posted

I cant read the text.

 

Notepad doesnt work.

 

I know gloves of accuracy is day 7 in raedrics keep where wife lies dead on the bed, chest next to her. And on day 107 in the od nua levels (5?) to the left of the bones.

 

 

Downloaded notepad ++ still just mumbo jumbo...can you copy the list into a post and ill just copy paste into a Word file

 

 

Edit again

 

tried darkroom, still nothing

You can just go here. http://pillarsofeternity.gamepedia.com/Random_loot

  • 3 weeks later...
Posted

How exactly does this work? Basically, lets say I enter a dungeon and there is chest that can spawn random loot. Lets say I want to get the gloves of swift action from Durgans battery. I go there on day 15 and get some item, which I dont want. So I load it back before opening the chest, go to town and wait for day 17 for example, which is suppose to spawn them, then it should be there? Doesnt matter that I entered the location before?

 

thanks in advance

Posted

How exactly does this work? Basically, lets say I enter a dungeon and there is chest that can spawn random loot. Lets say I want to get the gloves of swift action from Durgans battery. I go there on day 15 and get some item, which I dont want. So I load it back before opening the chest, go to town and wait for day 17 for example, which is suppose to spawn them, then it should be there? Doesnt matter that I entered the location before?

 

thanks in advance

Yea only opened chests/discovered hidden loot fix what loot you get, entering the location is np.

  • Like 1
  • 3 weeks later...
Posted

I don't know if this is a bug or just terrible luck but I literally have six bracers of deflection. It's almost the only random loot I seem to get in my current play through.

  • 9 months later...
Posted

I've looked into csharp-assembly code of 3.0.3+wm1+2 to see how this random thing works:

   private void SetSeed()
   {
       float single = base.transform.position.x;
       Vector3 vector3 = base.transform.position;
       Random.seed = (int)(single + vector3.z) * GameState.s_playerCharacter.name.GetHashCode() + WorldTime.Instance.CurrentDay;
   }

Chests are filled with loot when opening for the first time. For "randomizing" calculation, not only day of month matters, but also numeral hash of player character name, so differently named characters may get an "x" day(s) offset of loot, but still the same order of it.

If GameState character is the one currently selected, contents may be different when opened by characters with different names.

There doesn't seem to be any checks for difficulty, char level or stats anywhere.

Game engine uses seed to sort the order of loot list (not to select a single item from it), and assembly code adds first item from sorted list using some weird-looking code that checks weight of all "random" items.

Changing a single byte of default flag value in LootList:Evaluate() made all chests and corpses in the game to have all possible "random" loot at once. I can't point to the byte in original .dll bc reflexil changes the binary too much on any save.

 

 

This post needs to be pumped more. The tables are useful mainly only to determine what you *can get* from a particular container, and not really from what you'll actually get on a given day. Everyone is going to have different results thanks to the randomization based on character name.

How can anyone in their right mind try to ship a multimillion dollar product without making absolutely sure that they don't upset all their players with a degree in Medieval English Linguistics?

  • 2 years later...
Posted (edited)

First off, I apologize for necroing this thread, but I do not know where else to post this.  I am currently playing Pillars of Eternity Definitive Edition (Epic Game Store v1.1.3.0007) with both White March Parts 1 and 2 installed.  I am trying to get Gloves of Manipulation through either the (1) Raedric Keep - Main Floor - Chest on Desk or the (2) Raedric Keep - Main Floor - Chest Beside Bed chests.  My character is currently level 3 and named "MetsaroMagi".  I've used the rest with Nedmar option to advance days.

On 10/12/2016 at 8:52 AM, grausch said:

The Gloves of Manipulation have been replaced by Boots of Stability and the Belt of Bountiful Healing by some bracers.

I've done over 20+ days of reloading and have also concluded what grausch has said.  Additionally, I've seen the Rotward Amulet appear in the desk chest.  This item is not even listed on the LootDays spreadsheet (https://www.dropbox.com/s/ik2rdyvk5q48hrw/LootsDays.xlsx?dl=0), so I suspect this document may be out of date for my game version.

private void SetSeed()
   {
       float single = base.transform.position.x;
       Vector3 vector3 = base.transform.position;
       Random.seed = (int)(single + vector3.z) * GameState.s_playerCharacter.name.GetHashCode() + WorldTime.Instance.CurrentDay;
   }

Either the code posted above for 3.0.3+wm1+2 may be different from my game version Epic Game Store v1.1.3.0007 to take character level into consideration when trying to determine loot drops, or my character name hash equivalent for "MetsaroMagi" is causing the random seed to NEVER drop these gloves.  Please help!

Edited by MetsaroMagi
quote
Posted (edited)

There are two dates. The upper one tells the days you played the game and the lower one the actual day 1 - 20. Only the day of the month is important.

Chest - trapped by bed: Day 2 and 5

Chest - desk: Day 4

https://pillarsofeternity.gamepedia.com/Random_loot

One time i had a bug, where the item wasn't in either chest, even when i was clearly there on the right date. I don't think you have to always do that, but when you are in the blackhound inn, you have to save and reload the game for the right loot tables (at least for the Rymrgand's Mantle on Day 20).

And i never heard your name has anything to do with the loot tables, they are fixed on the current date.

Edited by baldurs_gate_2
Posted (edited)

@baldurs_gate_2, I have been basing my reloads on day of month, not days played, and taking "offsets" into account.  Trying again, this time I received Boots of Stealth from the chest beside the bed.  Boots of Stealth (just like my data point for getting a Rotward Amulet) are not even listed on the table (https://pillarsofeternity.gamepedia.com/Random_loot) for this chest!  I am going to create a new character with a different name and see if I get different results.  I still suspect changes for Epic Game Store v1.1.3.0007 to how random loot is generated despite:

On 8/18/2016 at 3:31 AM, digited said:

I've looked into csharp-assembly code of 3.0.3+wm1+2 to see how this random thing works:


   private void SetSeed()
   {
       float single = base.transform.position.x;
       Vector3 vector3 = base.transform.position;
       Random.seed = (int)(single + vector3.z) * GameState.s_playerCharacter.name.GetHashCode() + WorldTime.Instance.CurrentDay;
   }

 

Okay, I wanted to share that I found another updated loot table for 3.0, but even with this I am not finding the Gloves of Manipulation in either chest:

On 2/22/2016 at 1:01 PM, Match said:

Alright, so here are the first 4 loot locations. I'm putting it in a google doc so if peeps want to add to it they can.

https://docs.google.com/spreadsheets/d/1Bg3nVLMdlp0atZ8fYm5042oGTQH3TSVoWC2CTbleBFY/edit?usp=sharing

Edited by MetsaroMagi
added new loot table
Posted (edited)

The code above def. looks like the "randomness" is indeed influenced by character name. I don't know what "base.transform.position" refers to - player position or container position or camera or whatever position. I firmly believe container position.

The code is pretty meh - why temporarily storing the float and vector3 variables? 

The whole stuff could have been:

private void SetSeed()
   {
Random.seed = (int)(base.transform.position.x +base.transform.position.z) * GameState.s_playerCharacter.name.GetHashCode() + WorldTime.Instance.CurrentDay;
   }

But anyway:

The Random class(es) of C# and Unity will produce the same set of numbers each time you call for them if you don't change the seed. You could change the seed via system time or guid every time you called for a random number - and get a truly random set of numbers then - but either the dev here didn't know or didn't want to. For example maybe to get an even spread of items over the course of the game so the player doesn't end up with too many of the same "random" items. Or so... don't know. 

Before this character name thing was done this led to the known situation where everybody had the same set of random numbers/random items depending on the in-game day of the month. So those sheets with item/container/day could be shared. Now every character name gets his own set of "random" items.

It would work like before if everybody had the same character name. So if everybody's character would be named "Steve" you could go, check out all items in random containers at every game day (of the month) again and then share the info with the other Steves. 

Why this weird solution? No idea. They could have stored the system time or guid at character creation instead and then you could have had a good spread of random numbers but every character would have a different distribution so that even share among same char names wouldn't work anymore.

"No honor among Steves" it would have been. ;)

But somebody chose this name thing. So Steves unite! 

Edited by Boeroer

Deadfire Community Patch: Nexus Mods

Posted

@Boeroer, thanks for clarifying.  My interpretation of the seed generation was that the seed was used to generate the so-called "offset" that occurs when one character's name is different from another.  i.e. when on day 4, character A sees Gloves of Manipulation, but on the same day 4, character B sees Boots of Stealth.  One would then use the common loot table and calculate the offset to determine what day character B would see the same drop.  What you are saying is that this is not true.  Instead the entire loot table is generated from the seed, so unless everyone's character is named Steve, they would not see the same loot table.  If the seed determines loot tables and not the offset, what determines the offset observed when 2 characters just so happen to have the same loot table?

Posted

What I said above is only my guess - from looking at that code. It may be that an offset get calculated - I don't know Unity classes and what their methods really do. i only know C#. Could also be that Obsidian used their own Random class or whatever. 

But if I had to bet I would say that the hash from the char name, the position of the container and the day determine the item you'll find in the container. 🤷‍♂️

Deadfire Community Patch: Nexus Mods

Posted (edited)

To anyone interested, loot tables ARE different in Epic Game Store v1.1.3.0007.  I created 2 differently named characters and with BOTH characters I was able to get Gloves of Manipulation on Day 17

Spoiler

in a secret stash in the cell opposite and one down from where Giacco is being held.  I had to use iroll20s and AdvanceTimeByHours followed by numerous reloads to get this data, but was worth it!

Now on to getting Boots of Speed from

Spoiler

Dyrford Crossing

at character level 3! :) I am doing a solo wizard run on PotD, so I find these items (Gloves of Manipulation, Gloves of Accuracy, and Boots of Speed) to be core items for my run.

Edited by MetsaroMagi

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...