Oblivion:Class Reset: Difference between revisions

From PRCLive 100% Speedrun Wiki
Jump to navigation Jump to search
(Added the hotkey buffering setup)
 
(14 intermediate revisions by one other user not shown)
Line 2: Line 2:
|title
|title
|category = Player Stats
|category = Player Stats
|aka = Sewer Reset, Baurus Reset
|aka = Race Reset, Sewer Reset, Baurus Reset, Birthsign Reset
|image
|image
|videoLink
|videoLink
Line 10: Line 10:
|v12 = ?
|v12 = ?
|v121 = ✔
|v121 = ✔
|foundby = Fevus
|foundby = Fevus (Repeatable Sewer Reset by MeemawHustlin)
|datefound = 9/23/2021
|datefound = 9/23/2021
|archaeologist
|archaeologist = N/A
|archdate
|archdate = N/A
|source = https://discordapp.com/channels/330252789374779393/338176166051708929/890574528563003482
|source = https://discordapp.com/channels/330252789374779393/338176166051708929/890574528563003482
}}
}}


'''Class Reset''' is a glitch that results in the player's skills and attributes being reset whenever they alter their character build. The values of each reset stat are scaled up based on the player's level, resulting in much higher values than the player likely originally had.
'''Class Reset''' is a glitch that allows the player to change their class/race at any point in the game, resulting in the player's skills and attributes being scaled up based on the player's level. This glitch can be activated to reset your character's Class/Race/Birthsign repeatedly at any point.


==Instructions==
==Instructions==


There are two methods for setting this glitch up, each with their own pros and cons.
There are three methods for setting this glitch up, each with their own pros and cons. The first variation is the latest and most versatile one, while the other two are the original methods discovered.
 
===Repeatable Sewer Reset===
 
Use this setup for all subsequent repetitions of the Sewer Reset if a Class/Race/Birthsign Reset is desired multiple times on the same character.
 
# Create a save somewhere inside of the tutorial that will allow you to [[Oblivion:Load Warping|Load Warp]] back in later.
# Make another save before exiting the sewer, then exit normally. This fixes the wait time bug associated with the other two setups.
# Get your character to a higher level. The [[Oblivion:Infinite Level-Up Glitch|Infinite Level-Up Glitch]] is useful here.
# Load Warp your leveled character back into the tutorial sewer using your save from step 1. Note that this is a different cell than the one that replaces it upon exiting the tutorial.
# Make another save for this leveled character in the tutorial sewer.
# Load the save from step 2. Attempt to exit the tutorial sewer. The popup appears for finalizing your character creation choices.
# Select the desired choice of Class/Race/Birthsign to reset. Keep in mind this reset is going to be applied to the leveled version of your character, not the current character.
# Bring up the pause menu on the 1 frame of actionable gameplay between when the sewer popup closes and the popup for the Class/Race/Birthsign menu appears.
# Load the save from step 5, which is your leveled character in the tutorial sewer. The popup will now appear for this character instead of the one from the previous save file.
# Depending on which options you selected from this popup, your character will have stats that are now scaled up significantly based on your player level.
 
====Notes====
 
* This setup avoids the wait timer bug.
* You can repeat this version of the setup an infinite number of times on any character, making it extremely versatile.
* The only downside is that this setup requires a frame perfect trick, which is really difficult to perform consistently.
** The frame perfect trick can be avoided by using a different setup: hotkey an item that opens an interface such as a book, then press that hotkey right before interacting with the sewer gate. When you then select the desired choice of Class/Race/Birthsign, the item interface will open. You can now simply load the save you wish to perform the reset on. This trick is much more lenient but is yet to be tested to ensure that it has no unforeseen side effects.


===Sewer Reset===
===Sewer Reset===
Use this setup if it is the first time you are performing Class Reset on a character (or you want to avoid doing the frame perfect setup and are fine with the infamous wait time bug).


# Create a save somewhere inside of the tutorial that will allow you to [[Oblivion:Load Warping|Load Warp]] back in later.
# Create a save somewhere inside of the tutorial that will allow you to [[Oblivion:Load Warping|Load Warp]] back in later.
Line 60: Line 84:


==Mechanics==
==Mechanics==
{{GlitchResearchBox}}


When performing a Class Reset glitch, a few things happen depending on how you set it up:
===Stat Scaling/Effect Behavior===
 
When performing a Class/Race Reset, a few things happen depending on how you set it up:


# When you go through the race or class selection process, your skills are reset (overwriting boosts such as Skill Books, Training, Skeleton Key or Vampirism) to the base values of your new race/gender/class, then increased as follows:
# When you go through the race or class selection process, your skills are reset (overwriting boosts such as Skill Books, Training, Skeleton Key or Vampirism) to the base values of your new race/gender/class, then increased as follows:
Line 71: Line 96:
#** Skill values are capped at 100.
#** Skill values are capped at 100.
#** Since the reset overwrites the value of boosts, removing those boosts (such as dropping the Skeleton Key) will cause Skill Underflowing.
#** Since the reset overwrites the value of boosts, removing those boosts (such as dropping the Skeleton Key) will cause Skill Underflowing.
#* If you have performed the Baurus Reset after closing the "Finished - Exit Sewers" popup permanently, your skill experience will be reset.
#* If you have already closed the "Finished - Exit Sewers" popup permanently from the sewer exit, your skill experience will be reset.
#* If you have performed either Class Reset setup before closing the "Finished - Exit Sewers" popup permanently, your skill experience will be added on top of the base values.
# When you go through the race or class selection process, your attributes will be reset (overwriting boosts such as Vampirism) to the base values of your new race/gender/class, then increased as follows:
# When you go through the race or class selection process, your attributes will be reset (overwriting boosts such as Vampirism) to the base values of your new race/gender/class, then increased as follows:
#* Luck is unchanged and remains the base value.
#* Luck is unchanged and remains the base value.
#* If you performed Class Reset via the race menu, your Personality is still reset to its base value but does not scale up like other skills.
#* If you performed a Race Reset, your Personality is still reset to its base value but does not scale up like other skills.
#* All other attributes (including Personality if a class change was performed) are increased by +0.6 per character level.
#* All other attributes (including Personality if a Class Reset was performed) are increased by +0.6 per character level.
#* All attributes governing major skills are increased an additional +0.8 per character level for each applicable major skill.
#* All attributes governing major skills are increased an additional +0.8 per character level for each applicable major skill.
#** This means that depending on your major skills, all attributes aside from Luck could receive a boost of +0.6, +1.4, +2.2, or +3.0 per character level.
#** This means that depending on your major skills, all attributes aside from Luck could receive a boost of +0.6, +1.4, +2.2, or +3.0 per character level.
#* Attribute values are capped at 100, and then Birthsigns affects are added, meaning you can get attributes above 100 depending on Birthsign.
#* Attribute values are capped at 100, and then Birthsigns affects are added, meaning you can get attributes above 100 depending on Birthsign.
# If you have Vampirism, it will be removed if you changed your race during the reset.
#* Other stat bonuses gained from leveling and choosing certain attributes (such as gaining health from raising Endurance) are not decreased when that attribute is reset.
# If you have Vampirism, it will be removed if you changed your race during the reset, but the game will still think you are a Vampire when interacting with NPCs or attempting to get Vampirism again.
#* Changing gender does not remove Vampirism.
#* Changing gender does not remove Vampirism.
#* You can enter/exit the race changing menu without actually changing your race to keep your Vampirism.
#* You can enter/exit the race changing menu without actually changing your race to keep your Vampirism.
#* Keeping Vampirism through the Class Reset is important when attempting to Underflow skills.
#* Keeping Vampirism through the Class Reset is important when attempting to Underflow skills.
A calculator was created to simulate what stats you will end up with depending on your character build. You can make a copy of the spreadsheet [https://docs.google.com/spreadsheets/d/1y5aTwZ8e2DlwLZnv_PjUPboMq0zacEY8/edit?usp=sharing&ouid=104430489625956261497&rtpof=true&sd=true here].
===Repeatable Sewer Reset===
{{GlitchResearchBox}}
The Repeatable Sewer variation seems to work due to a bug in how the sewer exit script <code>CGSewerExitScript</code> was programmed. Its action to detect popup menu input from the player is checked within the <code>begin gamemode</code> section of the code, meaning that during gameplay in the cell with the sewer exit object, player input is being read in regardless of if the player has activated the sewer grate or not. This explains why the player can activate this glitch while not standing near the sewer exit as long as they are in the cell that runs this object's script. Additionally, there are no conditional checks to prevent the various character creation menus from showing up if they have already been done before. By inputting a popup choice on one file and loading another file before that input is used, this appears to inject that button input into the other save file since it will immediately run the same sewer script as soon as the object loads in.
Further testing needs to be done to see if other popups can be used to inject the input into this save file to get the same results, or if it only works because of both saves files reading off of the exact same popup input. This could be checked via:
* Injecting the “Path of Spirits” from Oghma Infinium, which gives us a <code>getbuttonpressed</code> value of <code>2</code>, matching the value needed for <code>showclassmenu</code>.
* Choosing the Mort Flesh offering at Meridia’s Shrine when we have bonemeal, ectoplasm, and mort flesh in our inventory returns the same return value.
===Wait Timer Bug===
When you skip the tutorial exit via load warping, you gain access to the use of the Sewer Reset glitch but lose the ability to manipulate NPCs with the wait timer. This results in having to use an excessive amount of [[Oblivion:Time Warping|Time Warping]] setups to spawn NPCs in the right locations, effectively making Sewer Reset more problematic than helpful in most situations.
This is because exiting the tutorial sewer triggers the door’s <code>CGSewerExitScript</code> script which calls <code>setstage MQ01 88</code>. This quest’s stage 88 calls a script that includes <code>setinchargen 0</code>. We have confirmed that this command is what fixes the wait timer bug by entering it as a console command on a “broken” save file and seeing that the save file is now able to wait to move NPCs again. <code>setinchargen 0</code> appears to not be present in any other scripts in the game, with the only other <code>setinchargen</code> being it set to <code>1</code> at the very start of the game. No variation of <code>setstage MQ01 88</code> or <code>set MQ01.stage to 88</code> is anywhere else in scripts either.
Manually console commanding <code>setinchargen 0</code> does not prevent the player from activating the sewer exit popup initially because the <code>CGSewerExitScript</code> allows the initial popup to appear if <code>IsActionRef player == 1 && getstagedone MQ01 88 == 0</code>.
===Additional Info===
* The purpose of all of this is to call <code>showclassmenu</code>, <code>showracemenu</code>, and <code>showbirthsignmenu</code>. These commands only appears twice in the game, triggered by Baurus during the tutorial, and by the sewer exit.

Latest revision as of 13:41, 10 August 2023

Class Reset

Category: Player Stats

Also Known As: Race Reset, Sewer Reset, Baurus Reset, Birthsign Reset



Version Compatibility
v1.0 v1.1.511 v1.20214 v1.2.0416
? ?

Required DLC Images will go here.

Details
Found By: Fevus (Repeatable Sewer Reset by MeemawHustlin)
Date Found: 9/23/2021
Archaeologist: N/A
Date Recovered: N/A
Original Source: Link

Class Reset is a glitch that allows the player to change their class/race at any point in the game, resulting in the player's skills and attributes being scaled up based on the player's level. This glitch can be activated to reset your character's Class/Race/Birthsign repeatedly at any point.

Instructions

There are three methods for setting this glitch up, each with their own pros and cons. The first variation is the latest and most versatile one, while the other two are the original methods discovered.

Repeatable Sewer Reset

Use this setup for all subsequent repetitions of the Sewer Reset if a Class/Race/Birthsign Reset is desired multiple times on the same character.

  1. Create a save somewhere inside of the tutorial that will allow you to Load Warp back in later.
  2. Make another save before exiting the sewer, then exit normally. This fixes the wait time bug associated with the other two setups.
  3. Get your character to a higher level. The Infinite Level-Up Glitch is useful here.
  4. Load Warp your leveled character back into the tutorial sewer using your save from step 1. Note that this is a different cell than the one that replaces it upon exiting the tutorial.
  5. Make another save for this leveled character in the tutorial sewer.
  6. Load the save from step 2. Attempt to exit the tutorial sewer. The popup appears for finalizing your character creation choices.
  7. Select the desired choice of Class/Race/Birthsign to reset. Keep in mind this reset is going to be applied to the leveled version of your character, not the current character.
  8. Bring up the pause menu on the 1 frame of actionable gameplay between when the sewer popup closes and the popup for the Class/Race/Birthsign menu appears.
  9. Load the save from step 5, which is your leveled character in the tutorial sewer. The popup will now appear for this character instead of the one from the previous save file.
  10. Depending on which options you selected from this popup, your character will have stats that are now scaled up significantly based on your player level.

Notes

  • This setup avoids the wait timer bug.
  • You can repeat this version of the setup an infinite number of times on any character, making it extremely versatile.
  • The only downside is that this setup requires a frame perfect trick, which is really difficult to perform consistently.
    • The frame perfect trick can be avoided by using a different setup: hotkey an item that opens an interface such as a book, then press that hotkey right before interacting with the sewer gate. When you then select the desired choice of Class/Race/Birthsign, the item interface will open. You can now simply load the save you wish to perform the reset on. This trick is much more lenient but is yet to be tested to ensure that it has no unforeseen side effects.

Sewer Reset

Use this setup if it is the first time you are performing Class Reset on a character (or you want to avoid doing the frame perfect setup and are fine with the infamous wait time bug).

  1. Create a save somewhere inside of the tutorial that will allow you to Load Warp back in later.
  2. Quicksave before exiting the sewer, then exit normally and Load Warp your quicksave character into a cell outside of the tutorial, such as a shop or house.
  3. Get your character to a higher level. The Infinite Level-Up Glitch is useful here.
  4. Load Warp back into the tutorial sewer using your save from step 1. Note that this is a different cell than the one that replaces it upon exiting the tutorial.
  5. Attempt to exit the tutorial sewer normally. The popup appears for finalizing your character creation choices.
  6. Depending on which options you selected from this popup, your character will have stats that are now scaled up significantly based on your player level.

Notes

  • The Sewer Reset setup allows the player to change their race, gender, and class upon returning.
  • You can repeat the Load Warping process after changing your build, allowing you to return to the sewer reset repeatedly.
  • The Sewer Reset activates a very problematic glitch where waiting does not advance NPC schedules properly.
  • This setup is slightly easier, as it does not require any clipping type glitches to get to the end of the tutorial.
  • Sewer Reset does not reset the experience you have gained for each skill, making it less ideal if you intend to Underflow skills but better otherwise.

Baurus Reset

  1. While playing through the tutorial, use Save Clipping to skip talking to Baurus in the final area right before he has you pick a class. You will need to kill the Mythic Dawn agent standing in the hallway around the corner past the locked grate to advance his script to the stage where he is ready to talk to you.
  2. Make a save at the sewer grate just before exiting this area.
  3. Exit the tutorial sewer. If you want to avoid your skill experience being reset, Load Warp past the final sewer exit as mentioned in the Sewer Reset instructions, otherwise exit normally.
  4. Get your character to a higher level. The Infinite Level-Up Glitch is useful here.
  5. Load Warp back into the tutorial room with Baurus using your save from step 2.
  6. Talk to Baurus and alter your class as desired.
  7. Depending on which options you selected for your class, your character will have stats that are now scaled up significantly based on your player level.

Notes

  • The Baurus Reset setup only allows the player to change their class, making it less flexible than Sewer Reset.
  • You cannot repeat the Baurus Reset glitch after activating it, unlike Sewer Reset.
  • The Baurus Reset avoids a wait timer bug that Sewer Reset causes.
  • This setup is more complicated than Sewer Reset, required the use of more glitches to get through the tutorial.
  • Baurus Reset allows you to reset the skill experience you've earned, as long as you have already permanently closed the "Finished - Exit Sewers" popup. This allows for much easier setups for Skill Underflowing.
  • You cannot advance the main quest at all until you've talked to Baurus about your class, so setting up this glitch prevents you from playing the main quest until you finish all the steps of the setup.

Mechanics

Stat Scaling/Effect Behavior

When performing a Class/Race Reset, a few things happen depending on how you set it up:

  1. When you go through the race or class selection process, your skills are reset (overwriting boosts such as Skill Books, Training, Skeleton Key or Vampirism) to the base values of your new race/gender/class, then increased as follows:
    • All skills are increased by +0.1 per character level.
      • If you don't have a class when performing this glitch (such as skipping Baurus' class dialog and doing Sewer Reset by changing race/gender before getting a class), all skills are considered minor skills and are only increased by +0.1.
    • All specialized skills are increased an additional +0.5 per character level.
    • All major skills are increased an additional +0.9 per character level.
      • Skill values are capped at 100.
      • Since the reset overwrites the value of boosts, removing those boosts (such as dropping the Skeleton Key) will cause Skill Underflowing.
    • If you have already closed the "Finished - Exit Sewers" popup permanently from the sewer exit, your skill experience will be reset.
  2. When you go through the race or class selection process, your attributes will be reset (overwriting boosts such as Vampirism) to the base values of your new race/gender/class, then increased as follows:
    • Luck is unchanged and remains the base value.
    • If you performed a Race Reset, your Personality is still reset to its base value but does not scale up like other skills.
    • All other attributes (including Personality if a Class Reset was performed) are increased by +0.6 per character level.
    • All attributes governing major skills are increased an additional +0.8 per character level for each applicable major skill.
      • This means that depending on your major skills, all attributes aside from Luck could receive a boost of +0.6, +1.4, +2.2, or +3.0 per character level.
    • Attribute values are capped at 100, and then Birthsigns affects are added, meaning you can get attributes above 100 depending on Birthsign.
    • Other stat bonuses gained from leveling and choosing certain attributes (such as gaining health from raising Endurance) are not decreased when that attribute is reset.
  3. If you have Vampirism, it will be removed if you changed your race during the reset, but the game will still think you are a Vampire when interacting with NPCs or attempting to get Vampirism again.
    • Changing gender does not remove Vampirism.
    • You can enter/exit the race changing menu without actually changing your race to keep your Vampirism.
    • Keeping Vampirism through the Class Reset is important when attempting to Underflow skills.

A calculator was created to simulate what stats you will end up with depending on your character build. You can make a copy of the spreadsheet here.

Repeatable Sewer Reset

CatPiss.png This glitch requires further research to fully understand its mechanics. Some information in this section is currently speculation.

The Repeatable Sewer variation seems to work due to a bug in how the sewer exit script CGSewerExitScript was programmed. Its action to detect popup menu input from the player is checked within the begin gamemode section of the code, meaning that during gameplay in the cell with the sewer exit object, player input is being read in regardless of if the player has activated the sewer grate or not. This explains why the player can activate this glitch while not standing near the sewer exit as long as they are in the cell that runs this object's script. Additionally, there are no conditional checks to prevent the various character creation menus from showing up if they have already been done before. By inputting a popup choice on one file and loading another file before that input is used, this appears to inject that button input into the other save file since it will immediately run the same sewer script as soon as the object loads in.

Further testing needs to be done to see if other popups can be used to inject the input into this save file to get the same results, or if it only works because of both saves files reading off of the exact same popup input. This could be checked via:

  • Injecting the “Path of Spirits” from Oghma Infinium, which gives us a getbuttonpressed value of 2, matching the value needed for showclassmenu.
  • Choosing the Mort Flesh offering at Meridia’s Shrine when we have bonemeal, ectoplasm, and mort flesh in our inventory returns the same return value.

Wait Timer Bug

When you skip the tutorial exit via load warping, you gain access to the use of the Sewer Reset glitch but lose the ability to manipulate NPCs with the wait timer. This results in having to use an excessive amount of Time Warping setups to spawn NPCs in the right locations, effectively making Sewer Reset more problematic than helpful in most situations.

This is because exiting the tutorial sewer triggers the door’s CGSewerExitScript script which calls setstage MQ01 88. This quest’s stage 88 calls a script that includes setinchargen 0. We have confirmed that this command is what fixes the wait timer bug by entering it as a console command on a “broken” save file and seeing that the save file is now able to wait to move NPCs again. setinchargen 0 appears to not be present in any other scripts in the game, with the only other setinchargen being it set to 1 at the very start of the game. No variation of setstage MQ01 88 or set MQ01.stage to 88 is anywhere else in scripts either.

Manually console commanding setinchargen 0 does not prevent the player from activating the sewer exit popup initially because the CGSewerExitScript allows the initial popup to appear if IsActionRef player == 1 && getstagedone MQ01 88 == 0.

Additional Info

  • The purpose of all of this is to call showclassmenu, showracemenu, and showbirthsignmenu. These commands only appears twice in the game, triggered by Baurus during the tutorial, and by the sewer exit.