Mod Updates Best Practices

Post » Sat Nov 17, 2012 5:22 am

So now my mod has been live on Steam and Nexus for a few weeks now, and naturally a few bugs have crept up. So what are the best ways to correct things like this once mods are in the wild?

Obviously Quest Updates shouldn't matter if the quest is done (unless it needs to be redone)

I don't have a ton of worries about my update as it is going to be pretty minimal (thankfully), but I am curious about how Steam updates work as well.
User avatar
Dewayne Quattlebaum
 
Posts: 3529
Joined: Thu Aug 30, 2007 12:29 pm

Post » Fri Nov 16, 2012 7:00 pm

So now my mod has been live on Steam and Nexus for a few weeks now, and naturally a few bugs have crept up. So what are the best ways to correct things like this once mods are in the wild?

Obviously Quest Updates shouldn't matter if the quest is done (unless it needs to be redone)

I don't have a ton of worries about my update as it is going to be pretty minimal (thankfully), but I am curious about how Steam updates work as well.

Most of the issues I am aware of are script related. Does your mod have scripts? If so, they need to be stopped when upgrading. Here's another thread on the topic: http://www.gamesas.com/index.php?showtopic=1386485 (It may not sound related, but if you have scripts, it definately is something to be aware of.)
User avatar
Jennifer May
 
Posts: 3376
Joined: Thu Aug 16, 2007 3:51 pm

Post » Sat Nov 17, 2012 12:22 am

How do you tell if a script is active?

I have some quest scripting, but that should be self contained (do this once) type of stuff. I have a few variables included in my quests that just serve as bools during dialogues that aren't ever used again. Finally I have a few loose scripts on levers and triggers to do particular things on entering/activating, with a few having tracked ints.
User avatar
Lil'.KiiDD
 
Posts: 3566
Joined: Mon Nov 26, 2007 11:41 am

Post » Sat Nov 17, 2012 5:26 am

How do you tell if a script is active?

I have some quest scripting, but that should be self contained (do this once) type of stuff. I have a few variables included in my quests that just serve as bools during dialogues that aren't ever used again. Finally I have a few loose scripts on levers and triggers to do particular things on entering/activating, with a few having tracked ints.

Do you have any OnUpdate() functions running with RegisterOnUpdate or RegisterForSingleUpdate? What are the conditions that keep it updating?

As you can see from that very long thread, scripts still running can be an issue and several people, including myself, have been impacted by failed updates. (If the script is running, Skyrim can't update the script, leaving the mod in a bad state.) I consider Steam worse because people may get an update and not even realize so you can't give them "proper" upgrade procedures. Because of this, I came up with a way to check if scripts could "possibly" be running, and warn the user as needed. It's not perfect or foolproof, but it was better than nothing, imo. (This code is in my ScenicCarriages mod, so in the new update quest code, I check to see if a carriage driver is currently loaded.) Hopefully you won't have to go to that extreme but you know your code best.

I would suggest start testing in your environment and check the log. Try upgrading in an area that you KNOW scripts should be running and see what happens. Then check in an area you think should be safe. If you see errros in your log, then you know you have issues to deal with.
User avatar
Eve(G)
 
Posts: 3546
Joined: Tue Oct 23, 2007 11:45 am

Post » Fri Nov 16, 2012 3:12 pm

Good suggestions Sollar.

Simple scripts aren't a worry are they? Like activate or read, and scripts to enable/disable objects through quest stages etc.

Just ones that are running in the background, such as OnUpdate and stuff.
User avatar
Love iz not
 
Posts: 3377
Joined: Sat Aug 25, 2007 8:55 pm

Post » Sat Nov 17, 2012 6:03 am

Okay, I don't have anything to worry about then as I don't have any OnUpdate type scripts. Just simple OnRead/Activate/Enter/Open type stuff :)
User avatar
Ben sutton
 
Posts: 3427
Joined: Sun Jun 10, 2007 4:01 am

Post » Fri Nov 16, 2012 2:27 pm

Simple scripts aren't a worry are they? Like activate or read, and scripts to enable/disable objects through quest stages etc.

Just ones that are running in the background, such as OnUpdate and stuff.

I've only had problems with scripts that are running not updating. Maybe if you got really unlucky and the user saved their game right as a lever script was executing, it could be a problem, but not sure what you could do about it anyways.

Okay, I don't have anything to worry about then as I don't have any OnUpdate type scripts. Just simple OnRead/Activate/Enter/Open type stuff :smile:

You probably won't have any issues, but I would still check your logs. I think it's a "good practice" to check what's going on - and believe me, some of your users will ;)
User avatar
Colton Idonthavealastna
 
Posts: 3337
Joined: Sun Sep 30, 2007 2:13 am

Post » Sat Nov 17, 2012 12:40 am

Ok cheers man :)
User avatar
butterfly
 
Posts: 3467
Joined: Wed Aug 16, 2006 8:20 pm

Post » Sat Nov 17, 2012 3:19 am

I've only had problems with scripts that are running not updating. Maybe if you got really unlucky and the user saved their game right as a lever script was executing, it could be a problem, but not sure what you could do about it anyways.

You probably won't have any issues, but I would still check your logs. I think it's a "good practice" to check what's going on - and believe me, some of your users will :wink:

If you save right after hitting a lever, you deserve a few bugs! :swear: And I always try to check my logs from time to time... I just wish containers didn't clog them so much. :down:
User avatar
sam smith
 
Posts: 3386
Joined: Sun Aug 05, 2007 3:55 am


Return to V - Skyrim