Oblivion:Random Skill Books

From PRCLive 100% Speedrun Wiki
Revision as of 19:44, 7 October 2022 by MeemawHustlin (talk | contribs)
Jump to navigation Jump to search

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.

Overview

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 trigger a load screen within the dungeon by leaving the cell the book was in. Load warping out before doing this will prevent loot from respawning. You must wait 73 hours for the dungeon loot to refresh after doing this.
    • The most efficient way to trigger a load screen to reroll loot is to quicksave after getting the book, exit the cell via the nearest door, quickload, and then exit the dungeon again the same way.
    • 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)

Previous Methods

Dungeon Scouting

The Ceyatatar random skill book location. Note that this is the only one that requires movement to reach the container.
The Underpall Cave random skill book location.
The Rockmilk Cave random skill book location.

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:

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

Route Logic Considerations

Here is the general logic structure:

  1. A few things need to be done prior to random skill book farming:
    1. Two Sides of the Coin needs to be completed to potentially acquire one random skill book without grinding. This book drop cannot be rerolled unfortunately.
    2. The locations Ceyatatar, Underpall Cave, and Rockmilk Cave should already be discovered to save travel time. This means Random Skill Books should go after Map Exploration.
  2. Random Skill Books should be acquired from loot farming in cycles as follows:
    1. Setup Phase: Each location is visited for the first time to acquire the first of each type of book.
      • Once a book is found at a dungeon, the player quicksaves, exits the cell via the nearest door, quickloads, and then exit the same door again to force loot to reroll later.
      • A Load Warp position is set inside the room the book container is in while facing the exit door. Ceyatatar is an exception since load warping to outdoors would remove the trapdoor, so that save is placed outside facing the trapdoor itself.
      • This phase ends with Load Warping back to Ceyatatar and waiting outside for 73 hours.
    2. Grinding Loop: Now that Load Warps are set up, the player checks to see if any books of a certain type are left at a location, then Load Warps to that location and repeats the book farming until a new book is found.
      • After finding another book, the quicksave/quickload trick to force future loot rerolls is repeated to set up the next cycle for that dungeon.
      • Underpall Cave has three books (The Argonian Account, Book 1 [Athletics], Mace Etiquette [Blunt], and Master Zoaraym's Tale [Hand to Hand]) that can be forced as loot drops during a future quest, but you can only get one of them, so that dungeon is skipped if the only remaining book is one of those two.
      • After looting or skipping all three dungeons, if one of the three Underpall Cave books mentioned previously is the only book remaining, the grinding loop is complete. Otherwise, the player Load Warps back to Ceyatatar and another 73 hour wait is performed in order to repeat the grinding loop again.
  3. Depending on the order of books were found in, the player either has all of the Random Skill Books or is missing a single Combat book from Underpall Cave. The Bear Season quest is now completed in since it can drop the remaining book. Quicksaving and quickloading repeatedly just before turning the quest in allows for rerolling the book, which has a much higher chance of dropping as a quest reward than through random loot. If no skill book was needed, this quest reward is simply ignored and no rerolling is required.

Potential Improvements

  • Theoretically, Random Skill Books should be acquired as early as possible in the run in order to avoid a run-killing amount of bad RNG in the late game. As of Version 4, we still do Random Skill Books extremely late in the run, when in reality we only need to wait until just after Map Exploration to do them.
  • A possible area of improvement could be the 73 hour wait time. Implementing a consistent Time Warping setup may cut down on wait time significantly.
  • It is possible to find all three of the Bear Season books in Underpall Cave before the other two, preventing the player from being able to skip a cycle of this dungeon. There may be a way to structure this section to guarantee that the final book is always one of the three desired books, but the only current idea of skipping these books if they are encountered would waste time.

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.