Jump to content

[REQUEST] [HELP] [SSE] I need help with my first custom quest


ReverendFelix

Recommended Posts

Posted

Is this a good place for this topic... IDK. I think there needs to be a modding topic category for individual games. Or at least a topic for making mods in general.

 

Anyway...

 

So as it says, I'm working on a mod that involves a short journal based quest. I have it basically all together using a custom trigger box to enable the quest. Then an object needs to be activated to start the quest. I have debug message boxes in place to let me know the TB and OBJ are firing their respective quests. Both return their message boxes, but the quest will not 'start'. Not on screen, or in the journal.

 

Scripts for stage advancement so far;

Spoiler


		

 


	

At SetStage 10 the quest is supposed to kick off.

 

Of course there was a lot more to it all. Like setting up the objectives and stages and blah blah.

 

I have researched extensively online for the solution, but I can't find a tutorial that covers journal based side quests. So can someone either help me out here, or point me to a relative tutorial?

Posted
3 hours ago, ReverendFelix said:

Is this a good place for this topic... IDK. I think there needs to be a modding topic category for individual games. Or at least a topic for making mods in general.

 

Anyway...

 

So as it says, I'm working on a mod that involves a short journal based quest. I have it basically all together using a custom trigger box to enable the quest. Then an object needs to be activated to start the quest. I have debug message boxes in place to let me know the TB and OBJ are firing their respective quests. Both return their message boxes, but the quest will not 'start'. Not on screen, or in the journal.

 

Scripts for stage advancement so far;

  Reveal hidden contents

At SetStage 10 the quest is supposed to kick off.

 

Of course there was a lot more to it all. Like setting up the objectives and stages and blah blah.

 

I have researched extensively online for the solution, but I can't find a tutorial that covers journal based side quests. So can someone either help me out here, or point me to a relative tutorial?

There is no script in your spoiler, so it is hard to know how to help you.  But, I will tell you this much. 

 

After you quest is supposed to have started, do

sqv <yourquest>

and see if it has started.  If it has, then you likely need to have a "Quest Objective" at stage 10.  The engine does not report a quest started if this is not the case.

Posted
32 minutes ago, fishburger67 said:

There is no script in your spoiler, so it is hard to know how to help you.  But, I will tell you this much. 

 

After you quest is supposed to have started, do

sqv <yourquest>

and see if it has started.  If it has, then you likely need to have a "Quest Objective" at stage 10.  The engine does not report a quest started if this is not the case.

 

Sorry my internet dropped on me while saving the post. I have made some progress on getting it to fire off right. But it is happening a stage too soon. It's skipping a part where an object needs to be activated to start the quest. I also have used the sqv command and it is running. I removed the debug messages from the scripts, and am trying a different approach to deal with the skip part problem.

 

Here are the scripts;

Spoiler
 

This one is attached to a trigger box and enables the quest;

 

Scriptname revWellKeyQuestTrigger extends ObjectReference

 

Int RunOnce Quest Property revWellKeyQuest Auto

Actor Property PlayerREF Auto

 

Event OnTriggerEnter(ObjectReference akActionRef)

 

If akActionRef == PlayerREF If RunOnce == 0

revWellKeyQuest.Start() revWellKeyQuest.SetStage(0)

RunOnce = 1

EndIf

EndIf

EndEvent

 

This one is supposed to start the quest when the object is activated;

 

Scriptname revWellKeyQuest2 extends ObjectReference

 

Int RunOnce Quest Property revWellKeyQuest Auto

Actor Property PlayerREF Auto

Message Property DoorMessage Auto

 

Event OnActivate(ObjectReference akActionRef)

 

If akActionRef == PlayerREF

If RunOnce == 0 revWellKeyQuest.SetStage(10)

RunOnce = 1

If akActionRef == PlayerRef DoorMessage.Show()

EndIf

EndIf

EndIf

EndEvent

Actually the scripts just didn't show up in rich text format, from a direct copy/paste of my script editor.

Posted
55 minutes ago, ReverendFelix said:

 

Sorry my internet dropped on me while saving the post. I have made some progress on getting it to fire off right. But it is happening a stage too soon. It's skipping a part where an object needs to be activated to start the quest. I also have used the sqv command and it is running. I removed the debug messages from the scripts, and am trying a different approach to deal with the skip part problem.

 

Here are the scripts;

  Hide contents
 

This one is attached to a trigger box and enables the quest;

 

Scriptname revWellKeyQuestTrigger extends ObjectReference

 

Int RunOnce Quest Property revWellKeyQuest Auto

Actor Property PlayerREF Auto

 

Event OnTriggerEnter(ObjectReference akActionRef)

 

If akActionRef == PlayerREF If RunOnce == 0

revWellKeyQuest.Start() revWellKeyQuest.SetStage(0)

RunOnce = 1

EndIf

EndIf

EndEvent

 

This one is supposed to start the quest when the object is activated;

 

Scriptname revWellKeyQuest2 extends ObjectReference

 

Int RunOnce Quest Property revWellKeyQuest Auto

Actor Property PlayerREF Auto

Message Property DoorMessage Auto

 

Event OnActivate(ObjectReference akActionRef)

 

If akActionRef == PlayerREF

If RunOnce == 0 revWellKeyQuest.SetStage(10)

RunOnce = 1

If akActionRef == PlayerRef DoorMessage.Show()

EndIf

EndIf

EndIf

EndEvent

Actually the scripts just didn't show up in rich text format, from a direct copy/paste of my script editor.

Not sure what the Quest modifier in your property statement.  I have never used it in thousands of lines of papyrus code.  eg "int RunOnce Quest Property ..."

 

I would normally write that as just

int Property RunOnce = 0 Auto HIdden

 

I am presuming that his all compiles, so it must be right, I have just never before seen it used and there is no document in CK for it.

 

evWellKeyQuest.Start() revWellKeyQuest.SetStage(0)

 

You don't need the setStage(0).  Quests always start at your "startup" stage which I assume is 0 for you.  This starts the quest, but does not make it show up in your quest log.

 

So, assuming that you have a quest objective at stage 10, your revWellKeyQuest2 should have made the quest active in the log, but ONLY if you have a quest objective at stage 10

 

You code there would be better written as

 

Auto STATE notActivated

Event OnActivate(ObjectReference akActionRef)

  if akActionRef == PlayerREF

    revWellKeyQuest.SetStage(10)

    gotostate "activated"

   PlayerRef DoorMessage.Show()

  EndIf

endState

 

state activated

;Dummy state

endstate

 

 

You say above "Both return their message boxes".  That tells me that the triggers happened.  If the quest does not show up in your log and onscreen when setstage 10 is called, you don't have a quest objective there.

Posted

Thanks for the info. I've been digesting what you've said, and trying to work out what I broke on my end. From what I can see, the triggerbox has stopped firing again. No idea why, I had everything working up to a point in the quest. Then I was trying to get the first quest marker to work. Somehow I borked the whole thing. 

 

The Int property controls the RunOnce function okay, but your suggestion looks more proper. I also thank you for the clarification regarding this;

On 12/7/2021 at 4:07 PM, fishburger67 said:

evWellKeyQuest.Start() revWellKeyQuest.SetStage(0)

 

You don't need the setStage(0).  Quests always start at your "startup" stage which I assume is 0 for you.  This starts the quest, but does not make it show up in your quest log.

I'll make adjustments there for sure.

 

On 12/7/2021 at 4:07 PM, fishburger67 said:

Auto STATE notActivated

Event OnActivate(ObjectReference akActionRef)

  if akActionRef == PlayerREF

    revWellKeyQuest.SetStage(10)

    gotostate "activated"

   PlayerRef DoorMessage.Show()

  EndIf

endState

 

state activated

;Dummy state

endstate

This is simply elegant? You're a really good scripter.

 

Edit;

Regarding this bit you mentioned;

"eg "int RunOnce Quest Property ..."

 

it actually,

 

int RunOnce

Quest Property revWell...

Actor Prop...

 

I simply did my spacing wrong when posting.

Archived

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

  • Recently Browsing   0 members

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