-
assigned issue to
Many unimportant RNG calls use Rand or Rnd instead of Rnd2
These may be the root cause of seed inconsistencies.
To reduce the chances of more instances popping up, I suggest making the RNG parameters in methods such as GetRandomElement
mandatory the next time mods must be broken.
Below are some RNG calls that should be using Rnd2 instead. Let me know if you guys need help finding them all!
GameObject.Die
, which callsGetRandomElement
to randomise the death soundGetRandomAlchemistSaying
- Potentially most
Get...
methods inGender
andPronounSet
GetRandomConcreteBodyPart
, which is used by descriptions, dialogue, etc.Grammar.Weirdify
- All text filters (Bird, Fish, Frog, etc.)
Pettable.Pet
, which callsGetRandomElement
to randomise the response textSurroundOnStep.HandleEvent
; the rainbow particles callGetRandomRainbowColor
andStat.Random
Chat.HandleEvent
(GetRandomElement
)Chat.PerformChat
(GetRandomElement
)PetFrondzie.taunt
, which callsGetRandomElement
to randomise the taunt textCampfire.Cook
(GetRandomElement
)
Comments (4)
-
repo owner -
repo owner The fact that the RNGs are all reseeded before any zone generation in general mean these calls to get random don’t actually effect zone generation determinism all that much in practice.
What’s really problematic is non-local changes in state having follow on effects in prng between seedings; That is, sometimes a different zone adjacency has been generated and so it creates a stair somewhere which effects the rest of rng, or perhaps this time the medicine names need to be rolled (This would be a bug but it happens) and it happens deep in a population table result, etc
-
repo owner - changed status to wontfix
-
reporter Ah, I didn’t see that when looking through the source. Though, if I understood correctly, wouldn’t fixing these RNG calls help narrow down causes of that issue without taking much time?
- Log in to comment