Oblivion:Quests: Difference between revisions

From PRCLive 100% Speedrun Wiki
Jump to navigation Jump to search
No edit summary
 
(6 intermediate revisions by the same user not shown)
Line 5: Line 5:
For 100% Completion, we need max out all of the finite statistics in the Accomplishments Tab, which includes the "Quests Completed" statistic. Additionally, there are a few quests that either have no end to them or interrupt other 100% objectives, so these are done up to their final possible journal entry or before losing other 100% objectives. There is also a single quest that cannot be started without losing a faction rank, so that quest is ignored entirely. The totals are as follows:
For 100% Completion, we need max out all of the finite statistics in the Accomplishments Tab, which includes the "Quests Completed" statistic. Additionally, there are a few quests that either have no end to them or interrupt other 100% objectives, so these are done up to their final possible journal entry or before losing other 100% objectives. There is also a single quest that cannot be started without losing a faction rank, so that quest is ignored entirely. The totals are as follows:


* 208 Quests Completed
* '''208 Quests Completed'''
** These are the majority of all quests in the game, all of which do not prevent the player from completing other 100% objectives.
** These are the majority of all quests in the game, all of which do not prevent the player from completing other 100% objectives.
* 4 Journal-Filled Quests
* '''4 Journal-Filled Quests'''
** '''[[Oblivion:Cast out of the Thieves Guild|Cast out of the Thieves Guild]]''' — This quest automatically loops after reaching its last quest stage, with no actual stage that moves it to the completed section of the journal. It must reach the further stage, stage 40, to be considered complete.
** '''[[Oblivion:Cast out of the Thieves Guild|Cast out of the Thieves Guild]]''' — This quest automatically loops after reaching its last quest stage, with no actual stage that moves it to the completed section of the journal. It must reach the further stage, stage 40, to be considered complete.
** '''[[Oblivion:Whispers of Death|Whispers of Death]]''' — This quest only has a single stage, and never updates or completes itself, so simply having it in the journal qualifies as advancing it far enough.
** '''[[Oblivion:Whispers of Death|Whispers of Death]]''' — This quest only has a single stage, and never updates or completes itself, so simply having it in the journal qualifies as advancing it far enough.
** '''[[Oblivion:The Arena|The Arena]]''' — This quest's highest stage is stage 100, but it does not move to the completed section of the journal, so getting it to this stage counts as finishing it.
** '''[[Oblivion:The Arena|The Arena]]''' — This quest's highest stage is stage 100, but it does not move to the completed section of the journal, so getting it to this stage counts as finishing it.
** '''[[Oblivion:Expelled from the Fighters Guild|Expelled from the Fighters Guild]]''' — This quest's final stage is stage 100, but getting to that stage requires being permanently expelled from the Fighters Guild. Since we need to the run as the max rank of each faction, the highest stage possible is stage 60.
** '''[[Oblivion:Expelled from the Fighters Guild|Expelled from the Fighters Guild]]''' — This quest's final stage is stage 100, but getting to that stage requires being permanently expelled from the Fighters Guild. Since we need to the run as the max rank of each faction, the highest stage possible is stage 60.
* 1 "Impossible" Quest
* '''1 "Impossible" Quest'''
** This quest is '''[[Oblivion:Eternal Exile|Eternal Exile]]''', which can only be started by getting permanently expelled from the Dark Brotherhood. Since we need to finish the run as the max rank of each faction, it is not possible to even start this quest. There is a glitch involving [[Oblivion:Load Warping|Load Warping]] that allows for completing the quest, but either way this quest would fail to meet the requirement of a "non-glitched source" as per the [[Oblivion:Overview|100% Requirements]].
** This quest is '''[[Oblivion:Eternal Exile|Eternal Exile]]''', which can only be started by getting permanently expelled from the Dark Brotherhood. Since we need to finish the run as the max rank of each faction, it is not possible to even start this quest. There is a glitch involving [[Oblivion:Load Warping|Load Warping]] that allows for completing the quest, but either way this quest would fail to meet the requirement of a "non-glitched source" as per the [[Oblivion:Overview|100% Requirements]].


The Quests Completed accomplishment increments each time a quest is completed, regardless of if a "good" or "bad" ending to a quest is reached. Due to the nature of how this is tracked, certain quests can often be sped up significantly by "failing" them, as long as those quests do not have [[Oblivion:Fame|Fame]] associated with them or prevent future quests from starting properly.
The Quests Completed accomplishment increments each time a quest is completed, regardless of if a "good" or "bad" ending to a quest is reached. Due to the nature of how this is tracked, certain quests can often be sped up significantly by "failing" them, as long as those quests do not have [[Oblivion:Fame|Fame]], other requirements associated with them, or prevent future quests from starting properly.


==Quest Stage Mechanics==
===Quest Stage Mechanics===


Quests are broken up into several stages, which are each represented by a value. Quest stage values are entirely arbitrary, with the only real rule being that each subsequent stage must have a greater value than the previous stage. Some quests start at stage 0 while others start at stage 10, and some quests end at stage 100 while others end at stage 85, 200, etc. A quest's stage is advanced via scripts attached to items, dialog choices, NPCs, etc. Each stage of a quest contains scripts that will run once that stage has started as well.
Quests are broken up into several stages, which are each represented by a value. Quest stage values are entirely arbitrary, with the only real rule being that each subsequent stage must have a greater value than the previous stage. Some quests start at stage 0 while others start at stage 10, and some quests end at stage 100 while others end at stage 85, 200, etc. A quest's stage is advanced via scripts attached to items, dialog choices, NPCs, etc. Each stage of a quest contains scripts that will run once that stage has started as well.
Line 25: Line 25:
It appears that in general, quest stages can never decrease, as indicated by the "Allow repeated stages" checkbox in the Construction Set. Once a stage has been passed, all scripts attached to that stage are unable to be activated. '''[[Oblivion:Cast out of the Thieves Guild|Cast out of the Thieves Guild]]''', '''[[Oblivion:Permanent Retirement|Permanent Retirement]]''', and '''[[Oblivion:The Ghost Ship of Anvil|The Ghost Ship of Anvil]]''' appear to be the only quests capable of reverting to previous stages.
It appears that in general, quest stages can never decrease, as indicated by the "Allow repeated stages" checkbox in the Construction Set. Once a stage has been passed, all scripts attached to that stage are unable to be activated. '''[[Oblivion:Cast out of the Thieves Guild|Cast out of the Thieves Guild]]''', '''[[Oblivion:Permanent Retirement|Permanent Retirement]]''', and '''[[Oblivion:The Ghost Ship of Anvil|The Ghost Ship of Anvil]]''' appear to be the only quests capable of reverting to previous stages.


===Sequence Breaking===
====Sequence Breaking====


Quests are advanced via the script <code>setstage [QuestID] [Stage]</code> or <code>set [QuestID].stage to [Stage]</code>. These instances of scripted quest stage updates can appear anywhere that scripts normally exist, such as on dialog options, NPC behavior scripts, other quest stage scripts, etc. When looking for sequence breaks, we ideally will want to compile a list of each quest, their stages, and where those stages are set throughout the game's code using our script database.
Quests are advanced via the script <code>setstage [QuestID] [Stage]</code> or <code>set [QuestID].stage to [Stage]</code>. These instances of scripted quest stage updates can appear anywhere that scripts normally exist, such as on dialog options, NPC behavior scripts, other quest stage scripts, etc. When looking for sequence breaks, we ideally will want to compile a list of each quest, their stages, and where those stages are set throughout the game's code using our script database.
Line 31: Line 31:
Depending on how each individual stage is programmed, it may lack conditional checks that verify the previous stage of the quest is active, or even if the quest is active at all, before updating the quest to that stage. These instances are where sequence breaks are possible. Some sequence breaks may work only after a certain stage is reached first, while others may work prior to the start of the quest. It all depends on each individual quest, since quests often rely on spawning in NPCs or objects partway through them that contain scripts for further quest updates, which may not spawn if those stages are skipped.
Depending on how each individual stage is programmed, it may lack conditional checks that verify the previous stage of the quest is active, or even if the quest is active at all, before updating the quest to that stage. These instances are where sequence breaks are possible. Some sequence breaks may work only after a certain stage is reached first, while others may work prior to the start of the quest. It all depends on each individual quest, since quests often rely on spawning in NPCs or objects partway through them that contain scripts for further quest updates, which may not spawn if those stages are skipped.


==Quest Breakdown==
===Quest Breakdown===


Here is a list of all quests in the game by category, with links to their sub-pages for full analysis of their quest logic, workarounds to known bugs, etc.:
Here is a list of all quests in the game by category, with links to their sub-pages for full analysis of their quest logic, workarounds to known bugs, etc.:


===Main Quest===
====Main Quest====


* '''[[Oblivion:Main Quest|Main Quest]]'''
* '''[[Oblivion:Main Quest|Main Quest]]'''


===Factions===
====Factions====


These quests are all associated with the primary factions in the game. Quests with temporary or smaller factions are under the Misc. category.
These quests are all associated with the primary factions in the game. Quests with temporary or smaller factions are under the Side Quests category.


* '''[[Oblivion:Dark Brotherhood|Dark Brotherhood]]'''
* '''[[Oblivion:Dark Brotherhood|Dark Brotherhood]]'''
Line 49: Line 49:
* '''[[Oblivion:The Arena|The Arena]]'''
* '''[[Oblivion:The Arena|The Arena]]'''


===Side Quests===
====Side Quests====


These are the other various smaller categories of quests.
These are the other various smaller categories of quests.
Line 58: Line 58:
* '''[[Oblivion:Village/Inn Quests|Village/Inn Quests]]'''
* '''[[Oblivion:Village/Inn Quests|Village/Inn Quests]]'''


===Journal-Filled===
====Journal-Filled====


For convenience, here are the four Journal-Filled quests listed separately from their other categories. These quests are unfinishable due to a lack of completion stages or conflict with the other 100% objectives.
For convenience, here are the four Journal-Filled quests listed separately from their other categories. These quests are unfinishable due to a lack of completion stages or conflict with the other 100% objectives, so they are advanced as far as possible without making other objectives impossible.


* '''[[Oblivion:Cast out of the Thieves Guild|Cast out of the Thieves Guild]]'''
* '''[[Oblivion:Cast out of the Thieves Guild|Cast out of the Thieves Guild]]'''
Line 67: Line 67:
* '''[[Oblivion:Whispers of Death|Whispers of Death]]'''
* '''[[Oblivion:Whispers of Death|Whispers of Death]]'''


===Impossible Quests===
====Impossible Quests====


There is only one quest under this category, and it is impossible due to having to lose your Dark Brotherhood faction rank to start it.
There is only one quest under this category, and it is impossible due to having to lose your Dark Brotherhood faction rank to start it.


* '''[[Oblivion:Eternal Exile|Eternal Exile]]'''
* '''[[Oblivion:Eternal Exile|Eternal Exile]]'''
==Previous Methods==
==Current Method==
==Potential Improvements==
Improvements to quest logic will be an iterative process of optimizing individual quests and reordering the interlacing of logic as small improvements are found. Each individual quest page has its own list of potential improvements within its ''Route Logic Considerations'' section.. A completely new reordering may result in a more efficient order of logic points, but this takes an incredibly long time to calculate out and is only worth doing with the discovery of major new [[Oblivion:Glitches/Tech|glitches]].


{{QuestNavBox}}
{{QuestNavBox}}

Latest revision as of 06:16, 18 October 2022

Quests are one of the primary objectives for the 100% speedrun, with most time saves resulting in finding unique errors in quest programming rather than finding general purpose tech/glitches. Note that this page focuses on the logic of each individual quest, not the interweaving of logic between quests and other objectives. Each quest's logic can be solved independently before implementing it into the overall route.

Overview

For 100% Completion, we need max out all of the finite statistics in the Accomplishments Tab, which includes the "Quests Completed" statistic. Additionally, there are a few quests that either have no end to them or interrupt other 100% objectives, so these are done up to their final possible journal entry or before losing other 100% objectives. There is also a single quest that cannot be started without losing a faction rank, so that quest is ignored entirely. The totals are as follows:

  • 208 Quests Completed
    • These are the majority of all quests in the game, all of which do not prevent the player from completing other 100% objectives.
  • 4 Journal-Filled Quests
    • Cast out of the Thieves Guild — This quest automatically loops after reaching its last quest stage, with no actual stage that moves it to the completed section of the journal. It must reach the further stage, stage 40, to be considered complete.
    • Whispers of Death — This quest only has a single stage, and never updates or completes itself, so simply having it in the journal qualifies as advancing it far enough.
    • The Arena — This quest's highest stage is stage 100, but it does not move to the completed section of the journal, so getting it to this stage counts as finishing it.
    • Expelled from the Fighters Guild — This quest's final stage is stage 100, but getting to that stage requires being permanently expelled from the Fighters Guild. Since we need to the run as the max rank of each faction, the highest stage possible is stage 60.
  • 1 "Impossible" Quest
    • This quest is Eternal Exile, which can only be started by getting permanently expelled from the Dark Brotherhood. Since we need to finish the run as the max rank of each faction, it is not possible to even start this quest. There is a glitch involving Load Warping that allows for completing the quest, but either way this quest would fail to meet the requirement of a "non-glitched source" as per the 100% Requirements.

The Quests Completed accomplishment increments each time a quest is completed, regardless of if a "good" or "bad" ending to a quest is reached. Due to the nature of how this is tracked, certain quests can often be sped up significantly by "failing" them, as long as those quests do not have Fame, other requirements associated with them, or prevent future quests from starting properly.

Quest Stage Mechanics

Quests are broken up into several stages, which are each represented by a value. Quest stage values are entirely arbitrary, with the only real rule being that each subsequent stage must have a greater value than the previous stage. Some quests start at stage 0 while others start at stage 10, and some quests end at stage 100 while others end at stage 85, 200, etc. A quest's stage is advanced via scripts attached to items, dialog choices, NPCs, etc. Each stage of a quest contains scripts that will run once that stage has started as well.

Certain quest stages will mark a quest as completed and move it to the completed section of the journal, although in some cases such as in Imperial Corruption, the quest can continue to update its stage anyway. Quests can have multiple stages that complete it, with any possible completion stage being a valid since they all increment the "Quests Completed" statistic. For 100%, we ideally want to reach a completion stage in as few actions as possible, making sure to acquire a completion stage that does not block us out of other 100% objectives such as Fame.

It appears that in general, quest stages can never decrease, as indicated by the "Allow repeated stages" checkbox in the Construction Set. Once a stage has been passed, all scripts attached to that stage are unable to be activated. Cast out of the Thieves Guild, Permanent Retirement, and The Ghost Ship of Anvil appear to be the only quests capable of reverting to previous stages.

Sequence Breaking

Quests are advanced via the script setstage [QuestID] [Stage] or set [QuestID].stage to [Stage]. These instances of scripted quest stage updates can appear anywhere that scripts normally exist, such as on dialog options, NPC behavior scripts, other quest stage scripts, etc. When looking for sequence breaks, we ideally will want to compile a list of each quest, their stages, and where those stages are set throughout the game's code using our script database.

Depending on how each individual stage is programmed, it may lack conditional checks that verify the previous stage of the quest is active, or even if the quest is active at all, before updating the quest to that stage. These instances are where sequence breaks are possible. Some sequence breaks may work only after a certain stage is reached first, while others may work prior to the start of the quest. It all depends on each individual quest, since quests often rely on spawning in NPCs or objects partway through them that contain scripts for further quest updates, which may not spawn if those stages are skipped.

Quest Breakdown

Here is a list of all quests in the game by category, with links to their sub-pages for full analysis of their quest logic, workarounds to known bugs, etc.:

Main Quest

Factions

These quests are all associated with the primary factions in the game. Quests with temporary or smaller factions are under the Side Quests category.

Side Quests

These are the other various smaller categories of quests.

Journal-Filled

For convenience, here are the four Journal-Filled quests listed separately from their other categories. These quests are unfinishable due to a lack of completion stages or conflict with the other 100% objectives, so they are advanced as far as possible without making other objectives impossible.

Impossible Quests

There is only one quest under this category, and it is impossible due to having to lose your Dark Brotherhood faction rank to start it.

Previous Methods

Current Method

Potential Improvements

Improvements to quest logic will be an iterative process of optimizing individual quests and reordering the interlacing of logic as small improvements are found. Each individual quest page has its own list of potential improvements within its Route Logic Considerations section.. A completely new reordering may result in a more efficient order of logic points, but this takes an incredibly long time to calculate out and is only worth doing with the discovery of major new glitches.