How can I update my script for my released mods...

Post » Mon Nov 19, 2012 5:27 pm

Running into a slight snag. With my CS Tag and Track mod, I'm looking to update the script. I actually need to
in order to implement a few more features.

My problem is, with scripts they seem to stick in saved games. Sometimes when working on private mods, i'll update
scripts, only to have them not show or do what they need to because the game will sort of read the script that's already
in a saved game and NOT the new one from the data folder (I need that to take priority).

I guess my question would be how do I get the game to recognize the script in the data folder as a higher priority than
the one that's already in the saved game?

Thanks,

-Mush-

ps. would a 'stop quest' remove that?
User avatar
Johnny
 
Posts: 3390
Joined: Fri Jul 06, 2007 11:32 am

Post » Tue Nov 20, 2012 8:44 am

I'm not sure how successfully this can actually be achieved.

Is this for you or your users? I.e Are you updating already released content?

Even with "clean-save" I think that certain elements of scripts are persistent in save game data.

My understanding of best known practice at this time is to run *uninstallation scripts prior to uninstalling or updating. This will stop any quest scripts and reset all variable's and property's in the others. Unregistering for update and while loops are also something to look out for (when not using the advisable RegisterForSingleUpdate).
User avatar
Kate Norris
 
Posts: 3373
Joined: Mon Nov 27, 2006 6:12 pm

Post » Tue Nov 20, 2012 6:03 am

I'm not sure how successfully this can actually be achieved.

Is this for you or your users? I.e Are you updating already released content?

Even with "clean-save" I think that certain elements of scripts are persistent in save game data.

My understanding of best known practice at this time is to run *uninstallation scripts prior to uninstalling or updating. This will stop any quest scripts and reset all variable's and property's in the others. Unregistering for update and while loops are also something to look out for (when not using the advisable RegisterForSingleUpdate).

It's for already released content.
My scripts are only called during functions. There's no while loops or any loops actually. In fact each function is sort of run once per call. There's no type of 'monitoring' it it. If that makes sense.

It's sort of click "Forget me" in dialogue which runs a short fragment to the function that says, Take this person you talked too and do this, when it's done. exit .

a lot is just on / off type of thing. I can post the script to see if it's easy to just update normally.

Spoiler
 Scriptname CSLetsTagQuestScript extends Quest  Int Property TagInt  Auto  {Number used to total the number of tags}Actor Property TagActorTemp  Auto  {Used to hold the Actor for adding them to the Tag Faction}Actor Property PlaceHolderActor AutoFaction Property CSTagFaction  Auto  {The Name of the Faction with ranks from 1 to 10};---Alias ReferencesReferenceAlias Property Tag01Alias  Auto  ReferenceAlias Property Tag02Alias  Auto  ReferenceAlias Property Tag03Alias  Auto  ReferenceAlias Property Tag04Alias  Auto  ReferenceAlias Property Tag05Alias  Auto  ReferenceAlias Property Tag06Alias  Auto  ReferenceAlias Property Tag07Alias  Auto  ReferenceAlias Property Tag08Alias  Auto  ReferenceAlias Property Tag09Alias  Auto  ReferenceAlias Property Tag10Alias  Auto  ReferenceAlias Property TagPlaceHolder  Auto  ;----- Used to check which slots are free or notInt Property Slot1 AutoInt Property Slot2 AutoInt Property Slot3 AutoInt Property Slot4 AutoInt Property Slot5 AutoInt Property Slot6 AutoInt Property Slot7 AutoInt Property Slot8 AutoInt Property Slot9 AutoInt Property Slot10 AutoInt Property iDoOnce AutoInt Property iRemSlot AutoInt Property iStartup AutoQuest Property rTagQuest  Auto  SPELL Property CSRemoveTagSpell  Auto  GlobalVariable Property CSSlot1GV  Auto  GlobalVariable Property CSSlot2GV  Auto  GlobalVariable Property CSSlot3GV  Auto  GlobalVariable Property CSSlot4GV  Auto  GlobalVariable Property CSSlot5GV  Auto  GlobalVariable Property CSSlot6GV  Auto  GlobalVariable Property CSSlot7GV  Auto  GlobalVariable Property CSSlot8GV  Auto  GlobalVariable Property CSSlot9GV  Auto  GlobalVariable Property CSSlot10GV  Auto  GlobalVariable Property gvTotalTag AutoMessage Property MessageA  Auto  Message Property MessageB  Auto  ;==================================================================================; Give the player a lesser power (Used as an optional way to remove tags once placed);============================Event OnInit()		if !(Game.GetPlayer().HasSpell (CSRemoveTagSpell))			(Game.GetPlayer().AddSpell (CSRemoveTagSpell))		endif	EndEvent;==================================================================================;===============================;  Used in dialogue when player talks to the person to Add a tag;;  The various states are used to control which Slot is open or not.  It assigns an actor to the first open slot.;===============================Function TagActor()	actor TaggedActor = TagActorTemp  as Actor	rTagQuest.SetStage(10)	if TagInt &--#60; 1		TagInt = 0	endifif Slot1 == 1	GotoState("Slot2State")else	if iDoOnce == 0		GotoState("DoOnceState")	else		TaggedActor.SetFactionRank(CSTagFaction , 1)		Tag01Alias.ForceRefTo(TaggedActor)		rTagQuest.SetObjectiveDisplayed(10)		rTagQuest.SetObjectiveDisplayed(11,0)		rTagQuest.SetObjectiveDisplayed(200)		Slot1 = 1		CSSlot1Gv.SetValueInt(1)		TagInt += 1		gvTotalTag.SetValueInt(TagInt)	endifendifEndFunctionState Slot2StateEvent OnBeginState()	   actor TaggedActor = TagActorTemp  as Actorif Slot2  == 1	GotoState("Slot3State")else	TaggedActor.SetFactionRank(CSTagFaction , 2)	Tag02Alias.ForceRefTo(TaggedActor)	   rTagQuest.SetObjectiveDisplayed(20)	   rTagQuest.SetObjectiveDisplayed(21,0)	Slot2 = 1	CSSlot2Gv.SetValueInt(1)	TagInt += 1	gvTotalTag.SetValueInt(TagInt)endifEndEventEndStateState Slot3StateEvent OnBeginState()	   actor TaggedActor = TagActorTemp  as Actorif Slot3 == 1	GotoState("Slot4State")else	TaggedActor.SetFactionRank(CSTagFaction , 3)	Tag03Alias.ForceRefTo(TaggedActor)	   rTagQuest.SetObjectiveDisplayed(30)	   rTagQuest.SetObjectiveDisplayed(31,0)	Slot3 = 1	CSSlot3Gv.SetValueInt(1)	TagInt += 1	gvTotalTag.SetValueInt(TagInt)endifEndEventEndStateState Slot4StateEvent OnBeginState()	   actor TaggedActor = TagActorTemp  as Actorif Slot4 == 1	GotoState("Slot5State")else	TaggedActor.SetFactionRank(CSTagFaction , 4)	Tag04Alias.ForceRefTo(TaggedActor)	   rTagQuest.SetObjectiveDisplayed(40)	   rTagQuest.SetObjectiveDisplayed(41,0)	Slot4 = 1	CSSlot4Gv.SetValueInt(1)	TagInt += 1	gvTotalTag.SetValueInt(TagInt)endifEndEventEndStateState Slot5StateEvent OnBeginState()	   actor TaggedActor = TagActorTemp  as Actorif Slot5 == 1	GotoState("Slot6State")else	TaggedActor.SetFactionRank(CSTagFaction , 5)	Tag05Alias.ForceRefTo(TaggedActor)	   rTagQuest.SetObjectiveDisplayed(50)	   rTagQuest.SetObjectiveDisplayed(51,0)	Slot5 = 1	CSSlot5Gv.SetValueInt(1)	TagInt += 1	gvTotalTag.SetValueInt(TagInt)endifEndEventEndStateState Slot6StateEvent OnBeginState()	   actor TaggedActor = TagActorTemp  as Actorif Slot6 == 1	GotoState("Slot7State")else	TaggedActor.SetFactionRank(CSTagFaction , 6)	Tag06Alias.ForceRefTo(TaggedActor)	   rTagQuest.SetObjectiveDisplayed(60)	   rTagQuest.SetObjectiveDisplayed(61,0)	Slot6 = 1	CSSlot6Gv.SetValueInt(1)	TagInt += 1	gvTotalTag.SetValueInt(TagInt)endifEndEventEndStateState Slot7StateEvent OnBeginState()	   actor TaggedActor = TagActorTemp  as Actorif Slot7 == 1	GotoState("Slot8State")else	TaggedActor.SetFactionRank(CSTagFaction , 7)	Tag07Alias.ForceRefTo(TaggedActor)	   rTagQuest.SetObjectiveDisplayed(70)	   rTagQuest.SetObjectiveDisplayed(71,0)	Slot7 = 1	CSSlot7Gv.SetValueInt(1)	TagInt += 1	gvTotalTag.SetValueInt(TagInt)endifEndEventEndStateState Slot8StateEvent OnBeginState()	   actor TaggedActor = TagActorTemp  as Actorif Slot8 == 1	GotoState("Slot9State")else	TaggedActor.SetFactionRank(CSTagFaction , 8)	Tag08Alias.ForceRefTo(TaggedActor)	   rTagQuest.SetObjectiveDisplayed(80)	   rTagQuest.SetObjectiveDisplayed(81,0)	Slot8 = 1	CSSlot8Gv.SetValueInt(1)	TagInt += 1	gvTotalTag.SetValueInt(TagInt)endifEndEventEndStateState Slot9StateEvent OnBeginState()	   actor TaggedActor = TagActorTemp  as Actorif Slot9 == 1	GotoState("Slot10State")else	TaggedActor.SetFactionRank(CSTagFaction , 9)	Tag09Alias.ForceRefTo(TaggedActor)	   rTagQuest.SetObjectiveDisplayed(90)	   rTagQuest.SetObjectiveDisplayed(91,0)	Slot9 = 1	CSSlot9Gv.SetValueInt(1)	TagInt += 1	gvTotalTag.SetValueInt(TagInt)endifEndEventEndStateState Slot10StateEvent OnBeginState()	   actor TaggedActor = TagActorTemp  as Actorif Slot10 == 1	else	TaggedActor.SetFactionRank(CSTagFaction , 10)	Tag10Alias.ForceRefTo(TaggedActor)	   rTagQuest.SetObjectiveDisplayed(100)	   rTagQuest.SetObjectiveDisplayed(101,0)	Slot10 = 1	CSSlot10Gv.SetValueInt(1)	TagInt += 1	gvTotalTag.SetValueInt(TagInt)endifEndEventEndState;==================================================================================;===============================;  Used in dialogue when player talks to the person to remove their tag;===============================Function RemoveTagActor()	if TagInt &--#60; 1		TagInt = 0	endif	Actor TaggedActor = TagActorTemp as Actor	Int FactionRank = TaggedActor.GetFactionRank(CSTagFaction) as Int	TaggedActor.RemoveFromFaction (CSTagFaction)if FactionRank == 1	TaggedActor = PlaceHolderActor as Actor	Tag01Alias.ForceRefTo(TaggedActor)	Slot1 = 0	CSSlot1Gv.SetValueInt(0)	rTagQuest.SetObjectiveDisplayed(10,0)	rTagQuest.SetObjectiveDisplayed(11)	TagInt -= 1	gvTotalTag.SetValueInt(TagInt)elseif FactionRank == 2	TaggedActor = PlaceHolderActor as Actor	Tag02Alias.ForceRefTo(TaggedActor)	Slot2 = 0	CSSlot2Gv.SetValueInt(0)	rTagQuest.SetObjectiveDisplayed(20,0)	rTagQuest.SetObjectiveDisplayed(21)	TagInt -= 1	gvTotalTag.SetValueInt(TagInt)elseif FactionRank == 3	TaggedActor = PlaceHolderActor as Actor	Tag03Alias.ForceRefTo(TaggedActor)	Slot3 = 0	CSSlot3Gv.SetValueInt(0)	rTagQuest.SetObjectiveDisplayed(30,0)	rTagQuest.SetObjectiveDisplayed(31)	TagInt -= 1	gvTotalTag.SetValueInt(TagInt)elseif FactionRank == 4	TaggedActor = PlaceHolderActor as Actor	Tag04Alias.ForceRefTo(TaggedActor)	Slot4 = 0	CSSlot4Gv.SetValueInt(0)	rTagQuest.SetObjectiveDisplayed(40,0)	rTagQuest.SetObjectiveDisplayed(41)	TagInt -= 1	gvTotalTag.SetValueInt(TagInt)elseif FactionRank == 5	TaggedActor = PlaceHolderActor as Actor	Tag05Alias.ForceRefTo(TaggedActor)	Slot5 = 0	CSSlot5Gv.SetValueInt(0)	rTagQuest.SetObjectiveDisplayed(50,0)	rTagQuest.SetObjectiveDisplayed(51)	TagInt -= 1	gvTotalTag.SetValueInt(TagInt)elseif FactionRank == 6	TaggedActor = PlaceHolderActor as Actor	Tag06Alias.ForceRefTo(TaggedActor)	Slot6 = 0	CSSlot6Gv.SetValueInt(0)	rTagQuest.SetObjectiveDisplayed(60,0)	rTagQuest.SetObjectiveDisplayed(61)	TagInt -= 1	gvTotalTag.SetValueInt(TagInt)elseif FactionRank == 7	TaggedActor = PlaceHolderActor as Actor	Tag07Alias.ForceRefTo(TaggedActor)	Slot7 = 0	CSSlot7Gv.SetValueInt(0)	rTagQuest.SetObjectiveDisplayed(70,0)	rTagQuest.SetObjectiveDisplayed(71)	TagInt -= 1	gvTotalTag.SetValueInt(TagInt)elseif FactionRank == 8	TaggedActor = PlaceHolderActor as Actor	Tag08Alias.ForceRefTo(TaggedActor)	Slot8 = 0	CSSlot8Gv.SetValueInt(0)	rTagQuest.SetObjectiveDisplayed(80,0)	rTagQuest.SetObjectiveDisplayed(81)	TagInt -= 1	gvTotalTag.SetValueInt(TagInt)elseif FactionRank == 9	TaggedActor = PlaceHolderActor as Actor	Tag09Alias.ForceRefTo(TaggedActor)	Slot9 = 0	CSSlot9Gv.SetValueInt(0)	rTagQuest.SetObjectiveDisplayed(90,0)	rTagQuest.SetObjectiveDisplayed(91)	TagInt -= 1	gvTotalTag.SetValueInt(TagInt)elseif FactionRank == 10	TaggedActor = PlaceHolderActor as Actor	Tag10Alias.ForceRefTo(TaggedActor)	Slot10 = 0	CSSlot10Gv.SetValueInt(0)	rTagQuest.SetObjectiveDisplayed(100,0)	rTagQuest.SetObjectiveDisplayed(101)	TagInt -= 1	gvTotalTag.SetValueInt(TagInt)endifEndFunction;==================================================================================;=========; Used in Script Effect Menu to Remove Tags;=========function MenuA()	;Page 1	iRemSlot = 0	int iNum = MessageA.show()	if iNum == 0		; Remove 1		iRemSlot = 1		RemoveMessageSlots()	elseif iNum == 1	; Remove 2		iRemSlot = 2		RemoveMessageSlots()	elseif iNum == 2	;  Remove 3		iRemSlot = 3		RemoveMessageSlots()	elseif iNum == 3	;  Remove 4		iRemSlot = 4		RemoveMessageSlots()	elseif iNum == 4;  Remove 5		iRemSlot = 5		RemoveMessageSlots()	elseif iNum == 5	; Next Page		Utility.Wait(0.5)		MenuB()	elseif iNum == 6	; Exit			endifendFunctionFunction MenuB()	;Page 2	iRemSlot = 0	int iNum = MessageB.show()	if iNum == 0		; Remove 6		iRemSlot = 6		RemoveMessageSlots()	elseif iNum == 1	; Remove 7		iRemSlot = 7		RemoveMessageSlots()	elseif iNum == 2	;  Remove 8		iRemSlot = 8		RemoveMessageSlots()	elseif iNum == 3	;  Remove 9		iRemSlot = 9		RemoveMessageSlots()	elseif iNum == 4	;  Remove 10		iRemSlot = 10		RemoveMessageSlots()	elseif iNum == 5	; Previous Page		Utility.Wait(0.5)		MenuA()	elseif iNum == 6; Exit			endifendFunctionFunction RemoveMessageSlots()if iRemSlot == 1	Actor TaggedActor = Tag01Alias.GetActorRef() as Actor	TaggedActor.RemoveFromFaction (CSTagFaction)	Slot1 = 0	CSSlot1Gv.SetValueInt(0)	TaggedActor = PlaceHolderActor as Actor	Tag01Alias.ForceRefTo(TaggedActor)	rTagQuest.SetObjectiveDisplayed(10,0)	rTagQuest.SetObjectiveDisplayed(11)	TagInt -= 1	gvTotalTag.SetValueInt(TagInt)elseif iRemSlot == 2	Actor TaggedActor = Tag02Alias.GetActorRef() as Actor	TaggedActor.RemoveFromFaction (CSTagFaction)	Slot2 = 0	CSSlot2Gv.SetValueInt(0)	TaggedActor = PlaceHolderActor as Actor	Tag02Alias.ForceRefTo(TaggedActor)	rTagQuest.SetObjectiveDisplayed(20,0)	rTagQuest.SetObjectiveDisplayed(21)	TagInt -= 1	gvTotalTag.SetValueInt(TagInt)elseif iRemSlot == 3	Actor TaggedActor = Tag03Alias.GetActorRef() as Actor	TaggedActor.RemoveFromFaction (CSTagFaction)	Slot3 = 0	CSSlot3Gv.SetValueInt(0)	TaggedActor = PlaceHolderActor as Actor	Tag03Alias.ForceRefTo(TaggedActor)	rTagQuest.SetObjectiveDisplayed(30,0)	rTagQuest.SetObjectiveDisplayed(31)	TagInt -= 1	gvTotalTag.SetValueInt(TagInt)elseif iRemSlot == 4	Actor TaggedActor = Tag04Alias.GetActorRef() as Actor	TaggedActor.RemoveFromFaction (CSTagFaction)	TaggedActor = PlaceHolderActor as Actor	Tag04Alias.ForceRefTo(TaggedActor)	Tag04Alias.Clear()	Slot4 = 0	CSSlot4Gv.SetValueInt(0)	rTagQuest.SetObjectiveDisplayed(40,0)	rTagQuest.SetObjectiveDisplayed(41)	TagInt -= 1	gvTotalTag.SetValueInt(TagInt)elseif iRemSlot == 5	Actor TaggedActor = Tag05Alias.GetActorRef() as Actor	TaggedActor.RemoveFromFaction (CSTagFaction)	TaggedActor = PlaceHolderActor as Actor	Tag05Alias.ForceRefTo(TaggedActor)	Slot5 = 0	CSSlot5Gv.SetValueInt(0)	rTagQuest.SetObjectiveDisplayed(50,0)	rTagQuest.SetObjectiveDisplayed(51)	TagInt -= 1	gvTotalTag.SetValueInt(TagInt)elseif iRemSlot == 6	Actor TaggedActor = Tag06Alias.GetActorRef() as Actor	TaggedActor.RemoveFromFaction (CSTagFaction)	TaggedActor = PlaceHolderActor as Actor	Tag06Alias.ForceRefTo(TaggedActor)	Slot6 = 0	CSSlot6Gv.SetValueInt(0)	rTagQuest.SetObjectiveDisplayed(60,0)	rTagQuest.SetObjectiveDisplayed(61)	TagInt -= 1	gvTotalTag.SetValueInt(TagInt)elseif iRemSlot == 7	Actor TaggedActor = Tag07Alias.GetActorRef() as Actor	TaggedActor.RemoveFromFaction (CSTagFaction)	TaggedActor = PlaceHolderActor as Actor	Tag07Alias.ForceRefTo(TaggedActor)	Slot7 = 0	CSSlot7Gv.SetValueInt(0)	rTagQuest.SetObjectiveDisplayed(70,0)	rTagQuest.SetObjectiveDisplayed(71)	TagInt -= 1	gvTotalTag.SetValueInt(TagInt)elseif iRemSlot == 8	Actor TaggedActor = Tag08Alias.GetActorRef() as Actor	TaggedActor.RemoveFromFaction (CSTagFaction)	TaggedActor = PlaceHolderActor as Actor	Tag08Alias.ForceRefTo(TaggedActor)	Slot8 = 0	CSSlot8Gv.SetValueInt(0)	rTagQuest.SetObjectiveDisplayed(80,0)	rTagQuest.SetObjectiveDisplayed(81)	TagInt -= 1	gvTotalTag.SetValueInt(TagInt)elseif iRemSlot == 9	Actor TaggedActor = Tag09Alias.GetActorRef() as Actor	TaggedActor.RemoveFromFaction (CSTagFaction)	TaggedActor = PlaceHolderActor as Actor	Tag09Alias.ForceRefTo(TaggedActor)	Slot9 = 0	CSSlot9Gv.SetValueInt(0)	rTagQuest.SetObjectiveDisplayed(90,0)	rTagQuest.SetObjectiveDisplayed(91)	TagInt -= 1	gvTotalTag.SetValueInt(TagInt)elseif iRemSlot == 10	Actor TaggedActor = Tag10Alias.GetActorRef() as Actor	TaggedActor.RemoveFromFaction (CSTagFaction)	TaggedActor = PlaceHolderActor as Actor	Tag10Alias.ForceRefTo(TaggedActor)	Slot10 = 0	CSSlot10Gv.SetValueInt(0)	rTagQuest.SetObjectiveDisplayed(100,0)	rTagQuest.SetObjectiveDisplayed(101)	TagInt -= 1	gvTotalTag.SetValueInt(TagInt)endif	if TagInt &--#60; 1		TagInt = 0		gvTotalTag.SetValueInt(TagInt)	endif	Utility.Wait(0.5)	if iRemSlot &--#60;= 5		MenuA()	else		MenuB()	endifEndFunction;==================================================================================;==================; Do once startup for when the player tags a person for the first time;==================State DoOnceStateEvent OnBeginState()   		actor TaggedActor = TagActorTemp  as Actor		TaggedActor.SetFactionRank(CSTagFaction , 1)		Tag01Alias.ForceRefTo(TaggedActor)		TaggedActor = PlaceHolderActor as Actor		Tag10Alias.ForceRefTo(TaggedActor)		Tag09Alias.ForceRefTo(TaggedActor)		Tag08Alias.ForceRefTo(TaggedActor)		Tag07Alias.ForceRefTo(TaggedActor)		Tag06Alias.ForceRefTo(TaggedActor)		Tag05Alias.ForceRefTo(TaggedActor)		Tag04Alias.ForceRefTo(TaggedActor)		Tag03Alias.ForceRefTo(TaggedActor)		Tag02Alias.ForceRefTo(TaggedActor)		rTagQuest.SetObjectiveDisplayed(101)		rTagQuest.SetObjectiveDisplayed(91)		rTagQuest.SetObjectiveDisplayed(81)		rTagQuest.SetObjectiveDisplayed(71)		rTagQuest.SetObjectiveDisplayed(61)		rTagQuest.SetObjectiveDisplayed(51)		rTagQuest.SetObjectiveDisplayed(41)		rTagQuest.SetObjectiveDisplayed(31)		rTagQuest.SetObjectiveDisplayed(21)		rTagQuest.SetObjectiveDisplayed(10)		rTagQuest.SetObjectiveDisplayed(200)		Slot1 = 1		CSSlot1Gv.SetValueInt(1)		TagInt += 1		gvTotalTag.SetValueInt(TagInt)		iDoOnce = 1EndEventEndState

There are a few other scripts, but all they do is call the fuctions to this main quest script.


edit: Forgot to add spoiler tags, fixed.
User avatar
Naomi Lastname
 
Posts: 3390
Joined: Mon Sep 25, 2006 9:21 am

Post » Tue Nov 20, 2012 7:35 am

Your biggest problems will most likely be borne out of any property's you abolished. I believe the data in save game will still look for these property's, needless to say this will cause errors.
This is hardly my area of expertise so beyond this I can't really be of value to you.


ps. would a 'stop quest' remove that?

This would be an avenue I would pursue. Prior to updating you would need to "prep" the game to be ready for your new scripts. Getting every variable and property back to being as default as possible (essentially identical to a never before seen script) would be ideal, that way when your newer script comes in it should simply do its thing. Just to reiterate this is not firsthand knowledge for me, just info I've gleaned from various posts in this forum.
User avatar
joannARRGH
 
Posts: 3431
Joined: Mon Mar 05, 2007 6:09 am

Post » Mon Nov 19, 2012 5:06 pm

The more i'm thinking, what I need to do shouldn't at all effect the quest or properties as really all i need to do is add a few menu functions to the already existing menu. It's strictly the script itself recognizing the new functions within the quest script. hmmm, I could always make a new 'menu' in addition to the one already in place, but then it starts being 'cluttered' with extra 'lesser powers'. two max but, I wanted to keep it as one that gives a few more options is all.
User avatar
Carlos Rojas
 
Posts: 3391
Joined: Thu Aug 16, 2007 11:19 am

Post » Tue Nov 20, 2012 2:44 am

There must be established practice though that I'm ignorant of. The need to update scripts with updated plugins without starting a new game is significant.
I'm sure someone here can be more helpful.
User avatar
Barbequtie
 
Posts: 3410
Joined: Mon Jun 19, 2006 11:34 pm

Post » Tue Nov 20, 2012 3:35 am

I suggest reading over the http://www.creationkit.com/Save_File_Notes_%28Papyrus%29 on the wiki which details exactly what is saved in save games and how it interacts with updated/changed scripts.
User avatar
Eve(G)
 
Posts: 3546
Joined: Tue Oct 23, 2007 11:45 am

Post » Tue Nov 20, 2012 12:43 am

If the script is running in a quest, would I be right in saying if the quest is stopped, game saved... mod updated... Game loaded, quest started, then the new script in the update will then take effect??
User avatar
DAVId MArtInez
 
Posts: 3410
Joined: Fri Aug 10, 2007 1:16 am

Post » Tue Nov 20, 2012 6:48 am

If the script is running in a quest, would I be right in saying if the quest is stopped, game saved... mod updated... Game loaded, quest started, then the new script in the update will then take effect??

I read that creation kit page. Seems most of the things I want to do I can, but it's not accepting a new Global variable i made. I set it in the script as GlobalVariable Property CSTrackingON Auto, which is also the same name as the actual Global I made. So it auto-filled it in the properties section.

I did exactly that B1gBadDaddy, and everything I added, the menu and extra functions work great except that one global. I had to start a new game to test and it worked fine. I may just have to use another quest script in addition to and make some kind of workaround so the original script never gets touched. This way users can just update without having to uninstall or make a clean save.
User avatar
Eddie Howe
 
Posts: 3448
Joined: Sat Jun 30, 2007 6:06 am


Return to V - Skyrim