Oblivion:Random Skill Books: Difference between revisions

From PRCLive 100% Speedrun Wiki
Jump to navigation Jump to search
(added dungeon scouting)
(added all current info.)
Line 52: Line 52:
* <u>Stealth Books:</u>
* <u>Stealth Books:</u>
** '''Rockmilk Cave''' in a tent in zone two that has a Boss Chest next to the door.
** '''Rockmilk Cave''' in a tent in zone two that has a Boss Chest next to the door.
==RNG Manipulation==
''Full article: [[Oblivion:RNG Manipulation|RNG Manipulation]]''
Even with being able to almost instantly reroll random skill books, the odds are still really low, making the split take an incredibly long time anyway. '''Scales''' has begun research on the possibility of using RNG Manipulation to pull skill books consistently. This would reduce what is at least an hour long split on average down to a mere 5-10 minutes depending on how the setup would work.
The only lead we are currently working off of is a trick we discovered that sometimes works. If you quicksave outside of a dungeon and then enter it by load warping the quicksave through it, you will (depending on the state of the save file) potentially get the same loot every time. While this doesn’t seem to be a way to get specific loot it may at least help us simplify the amount of variables we need to examine when trying to isolate exactly how RNG calling works in Oblivion. Other considerations are that Oblivion uses the Gamebryo engine which was programmed in C++, meaning that the RNG system is likely a standard library of some sort from either C or C++.
A good first step in manipulating RNG is to determine what system is used, which in this case appears to be the default C rand() function as seen in this [https://i.imgur.com/pJr2HdW.png decompiled screenshot] provided by Scales. The benefit of this discovery is that C rand() is [https://en.cppreference.com/w/c/numeric/random/rand very well documented online], the bad news is that RNG may be determined by system time which would make manipulation extremely difficult. Scales has also provided [https://www.youtube.com/watch?v=3zJUH43u3Bk a video] demonstrating enabling/disabling the random call function in Cheat Engine.

Revision as of 00:43, 9 November 2021

Overview

We have to read every skill book in the game, which typically adds very little time to the run given how many skill books appear in locations we already have to go to for other reasons. The only problematic ones are the random skill books, which can only be found in random loot, with few exceptions. These random books can take an excessive amount of time to find, with previous runs taking upwards of two hours to find them all.

Here is how random skill book loot works in Oblivion:

  • When you enter a cell containing chests, those chests’ loot contents are randomly generated.
    • This means that quicksaving outside of a cell and reloading if you don’t get the desired loot will allow you to reroll what loot you get, at the cost of having to run back through the cell to open the chest again.
    • This also means you can save inside the interior of a dungeon, not just outside it, to reroll. For example, a dungeon with cells 1, 2, and 3 where the book is at the end of cell 2 means you could load warp to cell 3, save outside the door from 3 to 2, then reroll entering cell 2 through that door repeatedly until you get the loot you want.
  • Only Boss Chests are able to contain skill books, and only certain dungeons can contain certain categories of skill book type. These are the three skill types of combat, magic, and stealth.
    • Marauder and Undead dungeons can contain Combat skill books.
    • Conjurer and Necromancer dungeons can contain Magic skill books.
    • Bandit and Vampire dungeons can contain Stealth skill books.
  • After successfully locating a skill book in a dungeon, you must wait 73 hours for the dungeon loot to refresh.
    • This means it is most efficient to find one of each type of book and then wait 73 hours to refresh all three dungeons.
  • There is a 10% chance that a Boss Chest will contain a skill book, and an equal chance of each book in the pool of that type of skill book appearing.
    • This means that for each skill book we find of a certain type, it becomes less likely that we will find the next book we need of that type.
    • Additionally, other skill books that are not exclusively found in random loot are also in the pool of options, further worsening the chance of finding the right book.
  • Finally, a few quests can reward a random skill book:
    • Bear Season (Can be re-rolled, 4/6 chance of one of these random Combat skill books):
      • The Argonian Account, Book 1 [Athletics]
      • History of the Fighters Guild [Heavy Armor]
      • Mace Etiquette [Blunt]
      • Master Zoaraym’s Tale [Hand to Hand]
    • Two Sides of the Coin (Cannot find an easy way to re-roll):
      • The UESP has conflicting info between the quest page and the Skill Books page, so this is unconfirmed:
        • Two skill books are earned, one of which is a 5/6 chance of being one of the Stealth random-exclusive skill books. Another page of the UESP claims it is a 5/7 chance but does not specify a list of specific books.
        • The second skill book is allegedly a 13/13 chance of a random book that can be found in loot but this seems incorrect. Another page on the UESP says it is a random Magic or Combat book from a pool of all possible skill books of those types including non-random loot books, but this also seems not entirely correct.
  • Here are the 13 skill books that can only be found in random loot:
    • The Argonian Account, Book 1 [Athletics] (Combat)
    • Heavy Armor Repair [Armorer] (Combat)
    • History of the Fighters Guild [Heavy Armor] (Combat)
    • Mace Etiquette [Blunt] (Combat)
    • Master Zoaraym’s Tale [Hand to Hand] (Combat)
    • Mystery of Talara, v 2 [Restoration] (Magic)
    • Mystery of Talara, v 3 [Destruction] (Magic)
    • The Warrior’s Charge [Conjuration] (Magic)
    • A Dance in Fire, v 7 [Mercantile] (Stealth)
    • Mystery of Talara, v 1 [Acrobatics] (Stealth)
    • Purloined Shadows [Sneak] (Stealth)
    • Rislav The Righteous [Light Armor] (Stealth)
    • Surfeit of Thieves [Security] (Stealth)

Dungeon Scouting

Given that the time taken to travel to a Boss Chest each reroll is the main time sink, we scouted for locations for each of the three skill book types by looking at every dungeon’s UESP maps to find the closest Boss Chest to the entrance to a zone. Here are the absolute optimal skill book farming locations:

  • Combat Books:
    • Underpall Cave in a Coffin in zone three, achieved via load warping into zone 4 and entering zone 3.
  • Magic Books:
    • Ceyatatar via an uotdoor hidden trapdoor that leads directly to the Boss Chest.
  • Stealth Books:
    • Rockmilk Cave in a tent in zone two that has a Boss Chest next to the door.

RNG Manipulation

Full article: RNG Manipulation

Even with being able to almost instantly reroll random skill books, the odds are still really low, making the split take an incredibly long time anyway. Scales has begun research on the possibility of using RNG Manipulation to pull skill books consistently. This would reduce what is at least an hour long split on average down to a mere 5-10 minutes depending on how the setup would work.

The only lead we are currently working off of is a trick we discovered that sometimes works. If you quicksave outside of a dungeon and then enter it by load warping the quicksave through it, you will (depending on the state of the save file) potentially get the same loot every time. While this doesn’t seem to be a way to get specific loot it may at least help us simplify the amount of variables we need to examine when trying to isolate exactly how RNG calling works in Oblivion. Other considerations are that Oblivion uses the Gamebryo engine which was programmed in C++, meaning that the RNG system is likely a standard library of some sort from either C or C++.

A good first step in manipulating RNG is to determine what system is used, which in this case appears to be the default C rand() function as seen in this decompiled screenshot provided by Scales. The benefit of this discovery is that C rand() is very well documented online, the bad news is that RNG may be determined by system time which would make manipulation extremely difficult. Scales has also provided a video demonstrating enabling/disabling the random call function in Cheat Engine.