Jump to content

[LE] [CreationKit Problem] Quest and Target NPC's


Recommended Posts

Hello
I need a help with my modification. First of all, Im beginner, who watched few hours of tutorials of Creation Kit.
Let me explain my problem:
1. I have made 2 NPC's.
2. First is a Quest Giver.
3. Second one is a Target NPC which have Quest Item (it should, but it is not).
First - I want to make Target NPC appear ONLY when Quest starts.
Now, when Im trying to make Target NPC Initially Disabled, after adding script "Alias_Belmusx.GetReference().Enable()" into first Quest Stage and enabling "Allow Disabled" parameter in Quest Aliases Section, it does not work and my Target NPC is not even created in the place, where he should be, after starting a Quest. Last time it worked as it should... But I have copied Target NPC to another place, and removed old one. (no ID or name changes, just duplicate). From that moment I got that problem. After removing Initially Disabled parameter, my Target NPC is in the world instantly without starting Quest from Quest Giver... But it is not what I want.
Second problem appears when I want to "spawn" a book / note item which is Quest Item into Target NPC inventory.
It does not appear in his body after killing him.
Reference to object
I don't want to create Quest Item manually in Target's NPC inventory. It makes that item easy to pickpocket.
In addition. Aliases are created correctly.
(Create reference to object -> A1_Note_Belmus -> Level: Easy -> Create: In -> Belmusx)

 

 

Third problem is how to make Quest Giver as my Follower after completing his Quest?

I did everything in "https://www.youtube.com/watch?v=BsDflXYvJ8I" tutorial, but it still doesn't work.

When I complete Quest Giver's Quest, dialog doesn't changes. I can say two things to my Quest Giver - Provoke him to attack me (which doesn't work after gaining relationship from Quest) and second thing is not visible because that was dialogue that was starting first objective of a Quest.

 

I hope that You understand everything :wink:

 

I would really appreciate help.

Edited by Truchlak
Link to comment
Share on other sites

For the first point, are you pointing to the NPCs via specific reference, or unique actor? If the former you need to reassign the duplicate as the alias.

 

Having the target alias unfilled will mean the book doesn't appear, so fixing the above should help.

 

The follower thing sounds like you have the dialogue conditioned wrong.

Link to comment
Share on other sites

Hey.

 

For the first point, are you pointing to the NPCs via specific reference, or unique actor? If the former you need to reassign the duplicate as the alias.

 

Having the target alias unfilled will mean the book doesn't appear, so fixing the above should help.

 

The follower thing sounds like you have the dialogue conditioned wrong.

 

Quest Giver - "Therbert" as unique actor in Quest Alias Tab.

Target NPC - "Belmus" as specific reference in Quest Alias Tab. (I just choosed him in the world)

 

There is screenshot:

https://imgur.com/a/iV5DoFn

and another

https://imgur.com/a/QU5yyni

 

"Alias_Belmus.GetReference().Enable()" on first stage

 

PS. In screenshot u see that is Belmusx alias, but I have changed it to Belmus. Nothing changed.

Edited by Truchlak
Link to comment
Share on other sites

If Belmus is "unique" in his npc form, then add him as unique in the alias form and not specific.

Belmus will also need an Actor property in the scripts tab.

If you want the note to spawn on death, you need to make a leveled item as a death item.

In the npc form add the death item by choosing there.

You can add a stage trigger on acquire or read from the note.

 

The npc should be persistent in the world where you want him to spawn (or appear) double click on the npc in the cration kit and make sure the "is disabled" box is checked.

You don;t need to script the "enable" from the alias, use the actor property, it's far more robust and I habe never had an issue spawning npc's like this.

Alias is great for packages, I alwas move, spawn and enable disable stuff from their property name in the properties tab. whether theyre actors, weapons, objectreferences.

 

An aliases npc will always need an actor property or the quest will fail

 

edit:

 

if you choose the alias as specific, then make sure the npc is NOT checked as unique in his actor form.

then you dont need the actor property and it will work.

If he is unique, you will need the actor property, it can be the same name as the alias.

 

in your script use the actor property ie: belmus.enable()

If you want to pass a note to another npc, of course there the long winded alias script, but i cheat and use robust, reliable script.

 

make the note as an objectreferehce ie: "mynote" in the script properties.

then if the npc talks to another npc and hand him a note, add the script in the dialogue "on end" box.

 

belmus.removeitem(mynote)

otherguy.additem(mynote)

Debug.MessageBox("I gave the guy the note")

GetOwningQuest().SetStage(mystage)

Edited by Rigmor
Link to comment
Share on other sites

If Belmus is "unique" in his npc form, then add him as unique in the alias form and not specific.

Done

 

Belmus will also need an Actor property in the scripts tab.

Only:

 

Scriptname A1_Script_Belmus extends ObjectReference

Quest Property A1_Quest_Therbert Auto

Event OnDeath(Actor killer)
if (A1_Quest_Therbert.GetStage() < 30)
A1_Quest_Therbert.SetObjectiveDisplayed(20)
A1_Quest_Therbert.SetStage(20)
endif
EndEvent

 

If you want the note to spawn on death, you need to make a leveled item as a death item.

I don't have enough knowledge to do this :C

Book as item have less of options than for example sword.

Goth this :D

 

The npc should be persistent in the world where you want him to spawn (or appear) double click on the npc in the cration kit and make sure the "is disabled" box is checked.

Do You mean this?

Because double click on Belmus Actor in actor's section, just open his settings tab, where I cannot find anything like "is disabled". There is only "is ghost" option, which I don't use.

https://imgur.com/a/iV5DoFn

 

 

I really appreciate help :smile:

 

 

 

 

EDIT: I just added new script direcly to my Belmus Actor, but it doesn't work as it should. Maybe it is because I have added wrong Event type...

 

 

Scriptname A1_Script_Belmus_2 extends ObjectReference

Quest Property A1_Quest_Therbert Auto

Actor Property Belmus Auto

Event OnDeath(Actor killer)
if (A1_Quest_Therbert.GetStage() == 10)
Belmus.Enable()
endif
EndEvent

Edited by Truchlak
Link to comment
Share on other sites

If you click on the npc in the creation kit, the object reference tab, not the actor form. should have a "disabled" box,

 

the game needs to know the guy is dead, it won't "know" unless you tell it. Maybe this bit of script after event.

"yourguy" is the actor property name of the guy you need dead to run the script.

 

if yourguy.IsDead()

Scriptname A1_Script_Belmus_2 extends ObjectReference  
Quest Property A1_Quest_Therbert  Auto  

Actor Property Belmus  Auto  

Event OnDeath(Actor killer)
if yourguy.IsDead()
(A1_Quest_Therbert.GetStage() == 10)
 Belmus.Enable()
 endif
 EndEvent
Edited by Rigmor
Link to comment
Share on other sites

If you click on the npc in the creation kit, the object reference tab, not the actor form. should have a "disabled" box

 

Yeah. Im just searching for this References Tab...

Im stupid, because I just cannot find it.

 

I know two ways to find "disabled" thing.

First - Right click on Belmus in "Cell View" and then "edit". I get new window, when I just mark "Initially Disabled" option.

Second - You can find it in the Quest Aliases tab after opening my Belmus alias, where is an option "Allow Disabled" (marked too).

 

Take a look:

https://imgur.com/a/xm16Wok

Link to comment
Share on other sites

Now it is like... Nothing changed :confused:

 

Starting quest, information appears, but no Belmus in the world.

 

1. Maybe I should remove now "Alias_Belmus.GetReference().Enable()" from my stage 10 in Quest?

2. I have got two, separate scripts into my Belmus actor, directly from Actors tab.

 

Scriptname A1_Script_Belmus extends ObjectReference

Quest Property A1_Quest_Therbert Auto

Event OnDeath(Actor killer)
if (A1_Quest_Therbert.GetStage() < 30)
A1_Quest_Therbert.SetObjectiveDisplayed(20)
A1_Quest_Therbert.SetStage(20)
endif
EndEvent

AND SECOND ONE

 

Scriptname A1_Script_Belmus_2 extends ObjectReference

Quest Property A1_Quest_Therbert Auto

Actor Property Belmus Auto

Event OnDeath(Actor killer)
if Belmus.IsDead()
(A1_Quest_Therbert.GetStage() == 10)
Belmus.Enable()
endif
EndEvent

 

_____________________________

EDIT:

https://imgur.com/a/t1zj0np

Edited by Truchlak
Link to comment
Share on other sites

OMG!

 

I did it. Belmus is alive after taking quest now...

 

BUT...

 

Just look on my screenshots. How do I fix it??

I think I dragged something for a mistake or idk.

There is a invisible water BOX, which takes everything what just enter it's zone...

 

https://imgur.com/a/q3QvVV6

 

 

I hope that script at the bottom isn't cause of this "wet" problem.

I just placed it in Stage (10) of the quest.

 

"Belmus.Enable()
SetObjectiveDisplayed(10)"

 

 

EDIT:

It seems that "WhiterunPlainsDistrict02" have " * " mark, which says that there were changes applied. But that is not any of my NPC - I did check it.

So now I have to resolve next problem :D

Is there any option to revert changes, only inside this area?

 

Im unlucky person.

Edited by Truchlak
Link to comment
Share on other sites

  • Recently Browsing   0 members

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