Jump to content

Vanilla Bounty Quest's Bounty Letter Fix


Recommended Posts

Posted

Vanilla Bounty Quest's Bounty Letter Fix

View File

---------------------------------
PLEASE READ THIS SECTION:
---------------------------------

This is a fix for vanilla Skyrim, Skyrim SE and AE ( only tested in lattest SE version no earlier avible to me ).


Bounty quests has a bug that flood your save file with items that no way to interact.
IF you leave a town without accepting bounty quest, AND you have no active bounty quest.
I made a fix for the script that make the trouble, so no longer pollute your save files.

This script file in my test cause no harm, and any time can be removed as not affect directly to your save files.
Very important: its work only un-changed original bounty quests! I dont know its work or not if any change made to bounty quest!

 

To get this fix: Download: NSBountyScriptFix_V1.zip

 

 

To clean up the items that the buggy script made, i created a separate mod i named NSBountyLetterCleaner.
This one add a new recipe: NS Bounty Letter cleaner book.
The book can be made any taming rack requires 1x leather strip.

Opening the book any time trigger a script to run and clean up all the item that made in game.
In old save files the cleanup process may take few minutes. End of the process you receive a message that show how many items got removed.
This File is ESL flagged ESP. Need to be used only on OLD playwright that made using the non fixed bounty script.
If you start new game with my bounty fix script you not need the cleaner mod!

 

To get the fixin mod Download: NSBountyLetterCleaner_V1.zip

 

i do only testing my self, so any feedback welcome!

 

---------------------------------
The bug:
---------------------------------

 

Original Game has 4 type of bounty quest that started when player enters a town or city.
Example: you enter riverwood, then walk to Whiterun.

 

Let say when you enter a city or village you not pick up a bounty quest and has no active bounty quest accepted in the hold.
Example: as you walk to riverwood not accept the aviable bounty quest, then walk to whitrun and leave without accepting bounty quest.

 

The game as prepare the bounty quest create a bounty letter every time the bounty quest started.
This letter contains the bounty information and given the player when the player chose to accept the quest in the inn or from the steward or from jarl.
it's all okay and good. The problem: when player leaves the location whiteout accepting the bounty!
The script stop the quest, but not delete the bounty letter! The bounty letters remain in game disabled. so no way for player to interact with it.
In our example: as you walk from Riwerwood to whiterun and leave Whiterun not accepting any bounty, and no bounty active: your action made the game make 2 bounty letters that going to stay in game forever.

 

For mod makers here is the bug:

 

BQScript.psc

 

Line 18: function PlayerChangedLocation()

 

This function called when player change location by the bounty quest that active.
This run the check player still inside the town/city. if player left the city/town the quest stop self:

    if getStage() < 10
        if Game.GetPlayer().IsInLocation(Alias_Location.GetLocation()) == False
;             debug.trace(self + " player is no longer in location and hasn't picked up quest, so shutting down quest so it can happen elsewhere.")
            Hold.GetLocation().setKeywordData(BQActiveQuest, 0)

 

 

The keyword change made to flag the hold no quest running here. so new quest can be started.
then stop the quest.

 

Here the script maker forget this:
the quest created a new item a bounty letter as quest started, that item made the position of the hold jarl, and set disabled at the start.
This is the point of failure.

After this part i changed the script: locating the bounty letter alias and ordering the item to be deleted soon as not in use.

 

 

I found this bug by pure luck as studied how bounty quests works. Best of my knowlage no other modder found and fixed it. If i wrong let me know!

 

---------------------------------
PREMISSIONS:
---------------------------------

 

Feel free to do whatever you wish to do. Use it, spreed it.
I made it to help others, and help fix the original game!
If you give credit to me, you make me happy.

 

---------------------------------
Name: NS Bounty Fix
Version: 1
Realise Date: 2024-08-12
---------------------------------

 


  • Submitter
  • Submitted
    08/12/2024
  • Category
  • Requirements
    Skyrim.Esm
  • Regular Edition Compatible
    Yes

 

Posted (edited)

I do have two mods that may or may not be related to the vanilla quest:

 

1. "Bounty Gold". This one simply adds an MCM to change the rewards for vanilla bounty quests. Nexus link: https://www.nexusmods.com/skyrimspecialedition/mods/18571

 

2. "Missives". On first sight i would expect this to be unrelated. However, the bounty quests are exactly the same as vanilla, and you hand them in the same way as vanilla. So this makes me wonder if missive bounties are simply another way to get vanilla bounty quests. Not sure.

 

Do you know if any of the above two mods conflict with your fix? 

 

EDIT: The "Bounty Gold" mod has no loose files, but a BSA. So i extracted the BSA to see what's inside. Here are the filenames of the scripts included:

 

bountygoldconfigmenuscript.pex

qf_bq01_00095125.pex

qf_bq02_000bd77f.pex

qf_bq03_000bd78c.pex

qf_bq04_000cba9a.pex

 

No sourcefiles unfortunally.

Edited by libertyordeath
Posted
50 minutes ago, libertyordeath said:

UPDATE: USSEP also changes the bounty script!

 

Is your script based on USSEP, or did you just accidentally fix a bug already fixed in USSEP?

After recived your message. i checked the ussep script for bounty quests. They changed the original script one point.

Its seams they fix handle the case when the quest started with invalid data. In theory this never shuld happen, as a quest fail locate valid data at start the quest supposed to stop it self.

 

To be the safe side i implement the USSEP fix to my script. To be honest i never seen this type of bug they mention in the bug discription.

Posted
2 hours ago, libertyordeath said:

I do have two mods that may or may not be related to the vanilla quest:

 

1. "Bounty Gold". This one simply adds an MCM to change the rewards for vanilla bounty quests. Nexus link: https://www.nexusmods.com/skyrimspecialedition/mods/18571

 

2. "Missives". On first sight i would expect this to be unrelated. However, the bounty quests are exactly the same as vanilla, and you hand them in the same way as vanilla. So this makes me wonder if missive bounties are simply another way to get vanilla bounty quests. Not sure.

 

Do you know if any of the above two mods conflict with your fix? 

 

EDIT: The "Bounty Gold" mod has no loose files, but a BSA. So i extracted the BSA to see what's inside. Here are the filenames of the scripts included:

 

bountygoldconfigmenuscript.pex

qf_bq01_00095125.pex

qf_bq02_000bd77f.pex

qf_bq03_000bd78c.pex

qf_bq04_000cba9a.pex

 

No sourcefiles unfortunally.

i belive non of this effect my fix. :)

 

Here is why:

 

My fix use only the "BQScript.pex" as long this one not get owerriten we are good.

here is how things working original version:

when you leave a habitation or location the game call "on location change" event. If this happen the BQscript called, in it a function that named:

"PlayerChangedLocation"

 

this handles the case when the player leave the location where the bounty assigned witout accepting it.

Original script writer here made the mistake that not delete the bounty letter the bounty quest made when started.

my fix here is simply delete the bounty latter.

 

This solution preverent new bounty letter remain in game and burden your save file/pc.

But not delete the existing bounty letters.

Posted
13 hours ago, libertyordeath said:

Awesome. Thank you very much!

Thank you for doing this checks.

 

i downloaded the missives mod and checked with xedit. it seams that one not owerite the original bounty quests. this means not effect my fix. So i stoped looking it.

Posted

Just ran the cleaner script. Seems to work perfect so far.

 

The only improvement proposal i have is: Only print the progress messages to the console, not as HUD messages. Why? It takes a VERY LONG time for the skyrim HUD to display 923 messages.

 

Yes, i had 923 zombie bounty letters.

Posted
On 8/19/2024 at 6:10 PM, libertyordeath said:

Just ran the cleaner script. Seems to work perfect so far

Good to hear! :)

On 8/19/2024 at 6:10 PM, libertyordeath said:

The only improvement proposal i have is: Only print the progress messages to the console, not as HUD messages. Why? It takes a VERY LONG time for the skyrim HUD to display 923 messages.

 

Yes, i had 923 zombie bounty letters.


OMG!

that was crazy!

 

In my test i removed 55 letter, this reduced my save file around 0,01 mega byte. i cant iamgine how mtuch your save file got reduced...

 

The notification display leftover from devlopment, i going to disable it thank you for the input!

 

 

The clean up script slow by the way on porpuse:

as you order the clean up reading the book here is what happen:

 

a script start a quest. this quest try locate 1 bounty letter then delete it. if the quest fail to locate any bounty letter stop it self.

same time the script wait around 1 secund. This long wait time on porpuse: in script heavy everiment might take long time the quest start...

 

hen check the quest is running or not. if quest not running well no more bounty letter left....

if running the quest got stoped and started agin.

in your case the script at minimum run around 923 secund.

 

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...