Jump to content

CK Wierdness, "Extends script does not exist"


Allannaa

Recommended Posts

I've just tried to add a script to the CK, and I'm getting a message that confuses me.

 

I clicked "New script"

I typed in AllaScript01 (yes, I know, I've got no imagination) for the name

In the "Extends" window, "Quest" is already showing, which is what I wanted

I clicked OK -- and this is the message I get

"The extends script does not exist, please pick one that does"

 

Which, of course, means I can't proceed from here.

 

Now as anyone who knows me knows, scripting confuses the heck out of me anyway (okay, it scares me.  Go ahead.  Laugh.)

 

How the heck can the extends script NOT exist, when everything in the damn game requires "This extends That" to exist in the first place?!

 

So what have I done wrong here?  Or what's messed up with the CK?

 

Thanks!

 

Link to comment

Decompress the file called Data/Scripts.rar and put is in the scripts folder.

 

Then grab the 7zip file of SKSE, expand it, and replace all files.

 

CPU -- Thanks for the quick answer but ....

Which would be where?  I don't see it.

 

** Edit -- As in, I searched my entire computer for *scripts.rar* and *script.rar* both and nothing.

Link to comment

 

 

CPU -- Thanks for the quick answer but ....

Which would be where?  I don't see it.

 

** Edit -- As in, I searched my entire computer for *scripts.rar* and *script.rar* both and nothing.

 

 

The file is in the Skyrim/Data/ folder.

An update from Steam last year removed the uncompressed scripts (and TESV_Flags) and replaced them with this archive.

 

If missing:

Option 1) Verify data cache from Steam.

Option 2) Just install SKSE files, usually they are enough for the basic objects.

Link to comment

All right, I've re-acquired that RAR file, opened it, put it in the Data folder.

 

The CK let me write the script, though it wouldn't compile.  I saved it anyway, then saved the test plug-in.

 

Then I closed the CK -- but it didn't close normally; it gave me a Windows "Program stopped working" pop up.  I told it to close anyway, which it did.

 

I re-opened the CK so that I could edit the script -- Fill in the properties, that is, so the little + sign changes to the little pencil sign.

 

Now the CK is telling me "Scripts: Cannot open store for class "QF__05005901", missing file?

 

BUT that file is right where it's supposed to be -- C> ProgramFilesx86> Steam.... etc, Data>Scripts>Source

 

So NOW what have I done wrong? 

 

(I'm about ready to go cry in a corner.)

Link to comment

CPU, here is what I get when I clicked Build > Compile on the script in the CK.

 

Starting 1 compile threads for 1 files...
Compiling "AllaFollowerScript"...
C:\Program Files (x86)\Steam\steamapps\common\skyrim\Data\Scripts\Source\temp\AllaFollowerScript.psc(28,1): variable pPlayerFollowerCount is undefined
C:\Program Files (x86)\Steam\steamapps\common\skyrim\Data\Scripts\Source\temp\AllaFollowerScript.psc(28,22): none is not a known user-defined type
C:\Program Files (x86)\Steam\steamapps\common\skyrim\Data\Scripts\Source\temp\AllaFollowerScript.psc(92,3): variable pPlayerFollowerCount is undefined
C:\Program Files (x86)\Steam\steamapps\common\skyrim\Data\Scripts\Source\temp\AllaFollowerScript.psc(92,24): none is not a known user-defined type
No output generated for AllaFollowerScript, compilation failed.

Batch compile of 1 files finished. 0 succeeded, 1 failed.
Failed on AllaFollowerScript

 

Maybe I've done something wrong with the script itself?  (Although all I actually did was copy and make a few change to the vanilla script, so far.  Since, you know, the CK isn't letting me have my way.)

 

But here's the script, so far.

ScriptName AllaFollowerScript extends Quest Conditional

ReferenceAlias Property pFollowerAlias Auto
Faction Property pDismissedFollower Auto
Faction Property pCurrentHireling Auto
Message Property  FollowerDismissMessage Auto
Message Property  FollowerDismissMessageWedding Auto
Message Property  FollowerDismissMessageWait Auto
SetHirelingRehire Property HirelingRehireScript Auto

;Property to tell follower to say dismissal line
Int Property iFollowerDismiss Auto Conditional

; PATCH 1.9: 77615: remove unplayable hunting bow when follower is dismissed
Weapon Property FollowerHuntingBow Auto
Ammo Property FollowerIronArrow Auto


Function SetFollower(ObjectReference FollowerRef)

	actor FollowerActor = FollowerRef as Actor
	FollowerActor.RemoveFromFaction(pDismissedFollower)
	If FollowerActor.GetRelationshipRank(Game.GetPlayer()) < 3 && FollowerActor.GetRelationshipRank(Game.GetPlayer()) >= 0
		FollowerActor.SetRelationshipRank(Game.GetPlayer(), 3)
	EndIf
	FollowerActor.SetPlayerTeammate()
	;FollowerActor.SetAV("Morality", 0)
	pFollowerAlias.ForceRefTo(FollowerActor)
	pPlayerFollowerCount.SetValue(0)
	
EndFunction


Function FollowerWait()

	actor FollowerActor = pFollowerAlias.GetActorRef() as Actor
	FollowerActor.SetAv("WaitingForPlayer", 1)
	;SetObjectiveDisplayed(10, abforce = true)
	;follower will wait 30 days
	pFollowerAlias.RegisterForUpdateGameTime(720)

EndFunction


Function FollowerFollow()

	actor FollowerActor = pFollowerAlias.GetActorRef() as Actor
	FollowerActor.SetAv("WaitingForPlayer", 0)
	SetObjectiveDisplayed(10, abdisplayed = false)

EndFunction


Function DismissFollower(Int iMessage = 0, Int iSayLine = 1)

	If pFollowerAlias && pFollowerAlias.GetActorRef().IsDead() == False
		If iMessage == 0
			FollowerDismissMessage.Show()
		ElseIf iMessage == 1
			FollowerDismissMessageWedding.Show()
		ElseIf iMessage == 5
			FollowerDismissMessageWait.Show()
		Else
			;failsafe
			FollowerDismissMessage.Show()
		EndIf
		actor DismissedFollowerActor = pFollowerAlias.GetActorRef() as Actor
		DismissedFollowerActor.StopCombatAlarm()
		DismissedFollowerActor.AddToFaction(pDismissedFollower)
		DismissedFollowerActor.SetPlayerTeammate(false)
		DismissedFollowerActor.RemoveFromFaction(pCurrentHireling)
		DismissedFollowerActor.SetAV("WaitingForPlayer", 0)	

		; Remove unplayable hunting bow when follower is dismissed
		DismissedFollowerActor.RemoveItem(FollowerHuntingBow, 999, true)
		DismissedFollowerActor.RemoveItem(FollowerIronArrow, 999, true)
		; END fix

		;hireling rehire function
		HirelingRehireScript.DismissHireling(DismissedFollowerActor.GetActorBase())
		If iSayLine == 1
			iFollowerDismiss = 1
			DismissedFollowerActor.EvaluatePackage()
			;Wait for follower to say line
			Utility.Wait(2)
		EndIf
		pFollowerAlias.Clear()
		iFollowerDismiss = 0
		;don't set count to 0 if Companions have replaced follower
		If iMessage == 2
			;do nothing
		Else
			pPlayerFollowerCount.SetValue(0)
		EndIf
	EndIf

EndFunction



 

Link to comment

You're referencing a pPlayerFollowerCount variable (a Global, by the looks of it) but this variable hasn't been declared anywhere in the script. In the script properties window, add a new Global property of the name pPlayerFollowerCount, and link it to the global variable you want to use. (which I assume is PlayerFollowerCount)

Link to comment

You're referencing a pPlayerFollowerCount variable (a Global, by the looks of it) but this variable hasn't been declared anywhere in the script. In the script properties window, add a new Global property of the name pPlayerFollowerCount, and link it to the global variable you want to use.

 

It won't let me.  I click Add Property, and the usual window pops up, but no matter what I select, it doesn't show in the properties window, and it ALSO doesn't transfer into the script.

 

To be honest, all I really want to do is make the "Player Follower Count" re-set to 0 once Kedris is acquired as a follower.  I do NOT want to make "unlimited" or "multiple" followers or anything like that -- All I want to do is allow for Kedris and one other follower (like the forced Serana follower.)

Link to comment

PlayerFollowerCount is a global variable, so it needs to be passed to the script as a property

 

add

GlobalVariable Property pPlayerFollowerCount auto

to the properties declared at the start of the script.

 

See above, Prinnie -- I tried.

 

I think I really am going to go cry in a corner.

 

Link to comment

 

You're referencing a pPlayerFollowerCount variable (a Global, by the looks of it) but this variable hasn't been declared anywhere in the script. In the script properties window, add a new Global property of the name pPlayerFollowerCount, and link it to the global variable you want to use.

 

It won't let me.  I click Add Property, and the usual window pops up, but no matter what I select, it doesn't show in the properties window, and it ALSO doesn't transfer into the script.

 

 

Right, you're getting the compile error when you try to add a property, right? This is because your script has errors. Find the two lines that use pPlayerFollowerCount and put a ; in front of them to comment them out. Now compile the script, if it does so successfully then go to the properties window and see if pPlayerFollowerCount is there yet. (it may have been added even though you got the error). If it's not, then add it and link it, and if it is, just link it. Now you can go back to the script and uncomment the 2 lines, and compile the script again.

Link to comment

 

 

You're referencing a pPlayerFollowerCount variable (a Global, by the looks of it) but this variable hasn't been declared anywhere in the script. In the script properties window, add a new Global property of the name pPlayerFollowerCount, and link it to the global variable you want to use.

 

It won't let me.  I click Add Property, and the usual window pops up, but no matter what I select, it doesn't show in the properties window, and it ALSO doesn't transfer into the script.

 

 

Right, you're getting the compile error when you try to add a property, right? This is because your script has errors. Find the two lines that use pPlayerFollowerCount and put a ; in front of them to comment them out. Now compile the script, if it does so successfully then go to the properties window and see if pPlayerFollowerCount is there yet. (it may have been added even though you got the error). If it's not, then add it and link it, and if it is, just link it. Now you can go back to the script and uncomment the 2 lines, and compile the script again.

 

 

Oh, I know the script has errors -- but I can't add anything from the Properties window anyway.

 

Which means, I need to type the property in manually, perhaps?  Or what?

 

Link to comment

 

Oh, I know the script has errors -- but I can't add anything from the Properties window anyway.

 

Which means, I need to type the property in manually, perhaps?  Or what?

Either type it manually, sure, or temporarily fix the errors by commenting out the troublesome lines like I said, so you can use the properties window.

Link to comment

Okay, here's the corrected script, which is now compiling.

 

HOWEVER, I'm still getting that "Scripts: Cannot open store for class "QF__05005901", missing file?" error when I click on the "AllaFollowerQuest" entry in the Object Window, to work on it.

 

And I'm sorry I'm so slow at this -- And I GREATLY appreciate everyone's patience in helping me!

 

Corrected (and compiled) script:

Scriptname AllaFollowerScript extends Quest  Conditional

GlobalVariable Property pPlayerFollowerCount  Auto 
ReferenceAlias Property pFollowerAlias  Auto
Faction Property pCurrentHireling Auto
Faction Property pDismissedFollower  Auto 
Message Property  FollowerDismissMessage Auto
Message Property  FollowerDismissMessageWait Auto
Message Property  FollowerDismissMessageWedding Auto
SetHirelingRehire Property HirelingRehireScript Auto


;Property to tell follower to say dismissal line
Int Property iFollowerDismiss Auto Conditional

;Remove unplayable hunting bow when follower is dismissed
Weapon Property FollowerHuntingBow Auto
Ammo Property FollowerIronArrow Auto


Function SetFollower(ObjectReference FollowerRef)

	actor FollowerActor = FollowerRef as Actor
	FollowerActor.RemoveFromFaction(pDismissedFollower)
	If FollowerActor.GetRelationshipRank(Game.GetPlayer()) < 3 && FollowerActor.GetRelationshipRank(Game.GetPlayer()) >= 0
		FollowerActor.SetRelationshipRank(Game.GetPlayer(), 3)
	EndIf
	FollowerActor.SetPlayerTeammate()
	;FollowerActor.SetAV("Morality", 0)
	pFollowerAlias.ForceRefTo(FollowerActor)
	pPlayerFollowerCount.SetValue(0)
	
EndFunction


Function FollowerWait()

	actor FollowerActor = pFollowerAlias.GetActorRef() as Actor
	FollowerActor.SetAv("WaitingForPlayer", 1)
	;SetObjectiveDisplayed(10, abforce = true)
	;follower will wait 30 days
	pFollowerAlias.RegisterForUpdateGameTime(720)

EndFunction


Function FollowerFollow()

	actor FollowerActor = pFollowerAlias.GetActorRef() as Actor
	FollowerActor.SetAv("WaitingForPlayer", 0)
	SetObjectiveDisplayed(10, abdisplayed = false)

EndFunction


Function DismissFollower(Int iMessage = 0, Int iSayLine = 1)

	If pFollowerAlias && pFollowerAlias.GetActorRef().IsDead() == False
		If iMessage == 0
			FollowerDismissMessage.Show()
		ElseIf iMessage == 1
			FollowerDismissMessageWedding.Show()
		ElseIf iMessage == 5
			FollowerDismissMessageWait.Show()
		Else
			;failsafe
			FollowerDismissMessage.Show()
		EndIf
		actor DismissedFollowerActor = pFollowerAlias.GetActorRef() as Actor
		DismissedFollowerActor.StopCombatAlarm()
		DismissedFollowerActor.AddToFaction(pDismissedFollower)
		DismissedFollowerActor.SetPlayerTeammate(false)
		DismissedFollowerActor.RemoveFromFaction(pCurrentHireling)
		DismissedFollowerActor.SetAV("WaitingForPlayer", 0)	

		; Remove unplayable hunting bow when follower is dismissed
		DismissedFollowerActor.RemoveItem(FollowerHuntingBow, 999, true)
		DismissedFollowerActor.RemoveItem(FollowerIronArrow, 999, true)
		; END Fix

		;hireling rehire function
		HirelingRehireScript.DismissHireling(DismissedFollowerActor.GetActorBase())
		If iSayLine == 1
			iFollowerDismiss = 1
			DismissedFollowerActor.EvaluatePackage()
			;Wait for follower to say line
			Utility.Wait(2)
		EndIf
		pFollowerAlias.Clear()
		iFollowerDismiss = 0
		;don't set count to 0 if Companions have replaced follower
		If iMessage == 2
			;do nothing
		Else
			pPlayerFollowerCount.SetValue(0)
		EndIf
	EndIf

EndFunction



Link to comment

From what I see, you're missing the source file for the Quest Fragment QF__05005901, now I didn't check to see if that's a native quest or not, but if it is, it's inside a BSA where the CK can't read it and if not, you need to track down where it does belong.


Link to comment

 

From what I see, you're missing the source file for the Quest Fragment QF__05005901, now I didn't check to see if that's a native quest or not, but if it is, it's inside a BSA where the CK can't read it and if not, you need to track down where it does belong.

 

 

I've tried.  A search of my C drive lists it only in C>.... Steam > Skyrim  > Data > Scripts >Source

Link to comment

 

Okay, here's the corrected script, which is now compiling.

 

HOWEVER, I'm still getting that "Scripts: Cannot open store for class "QF__05005901", missing file?" error when I click on the "AllaFollowerQuest" entry in the Object Window, to work on it.

 

Your AllaFollowerQuest has a reference to the script QF__05005901, but you're either missing the source file, or the compiled version of it. In the case of the latter, you can try to compile it and see if that removes the error.

 

Link to comment

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

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

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more information, see our Privacy Policy & Terms of Use