Jump to content

[LE] SetEssential command is useless


masternoxx

Recommended Posts

I am trying to set an essential actor as non-essential through a script,

It is Ennis and he is part of the quest DA14 "a night to remember"

Well I am trying to make him killable after quest stage 85 which is where he gets mad about his goat.

So I have successfully done this by setting his base actor to nonessential by removing the checkbox.

Then use clearAlias() on him at quest stage 85.

The only problem with that is now he can be killed, before the quest starts.

 

So I tried it another way by leaving his base actor essential flag on.

then on quest stage 85 I used clearAlias and then setEssential to false.

Only problem is this doesn't work, apparently because in order for setEssential (false) to take effect,

the character has to "update" (level up).

So what good is this command? Especially on an NPC that is a fixed level?

 

You can see this type of thing all the time on all the quests in Skyrim. Its really stupid.

for instance riverwood trader they set lucan to killable, once you start the quest he wont be though, and then after he will be. But this is stupid because you can kill him before the quest starts which negates the reason to make him essential in the first place, Making him essential because he is part of a quest.

 

I would like actors like Ennis who are required to advance the quest, to start out the game essential, and be essential until either the quest is done, or their part in the quest is done. And then I want them to be non-essential, because they are no longer needed for a quest.

 

Is there any way to set an actor to non-essential, and then force the actor to update, and therefore be killable. I seen something mentioned about toggling race on creation kit webpage in order to do this but it doesn't give examples. Perhaps there is an SKSE function. Perhaps you can force them to a different level?

 

Thanks for help

 

Link to comment
Share on other sites

So in my spell pack for SE, I have spells to toggle essential, and protected status on NPCs (hell they can even be redirected to the player to make yourself essential if you really want).

 

I can confirm that the commands work at least when applying them via papyrus (I haven't bothered toggling them via a quest, but I imagine it's fairly straightforward).

Link to comment
Share on other sites

So in my spell pack for SE, I have spells to toggle essential, and protected status on NPCs (hell they can even be redirected to the player to make yourself essential if you really want).

 

I can confirm that the commands work at least when applying them via papyrus (I haven't bothered toggling them via a quest, but I imagine it's fairly straightforward).

 

Can you elaborate on how you made the Actors update, were they leveled actors, I'm sorry I don't have Special Edition.

I'm not special =(

did you killing him right afterward on an essential actor and it worked?

 

I am going to try a SetRace() command after and see if that will work.

 

Is it just me or when you click quote on this forum, does it post the wrong reply, it posts the one before. But next time it works strangely

Edited by masternoxx
Link to comment
Share on other sites

This is some progress, I have looked up the quest MQ302, do you know on what stage they set her non-essential? I would like to see exactly the code, thanks very much.

 

Perhaps I did something wrong when using setessential on Ennis? You're saying that it should work immediately?

I had tried the command before and after the clearAlias command, and he still was not killable.

 

da14 stage 85

;Set property - actor Ennis
;Ennis.GetActorBase().SetEssential(false) ;remove base actor essential flag-NOT WORKING
Alias_DA14Ennis.Clear() ;remove his quest alias

;Ennis.GetActorBase().SetEssential(false)

 

Thanks for the help!

 

i have found this thread,

https://forums.nexusmods.com/index.php?/topic/1019749-scripting-setessential-command-not-working/

and on post 4 botOwned says,

"SetEssential and SetProtected are ActorBase script commands, Actor References will not be effected by the change until the Actor either re-levels (if a non temporary), or if it's a temporary actor..."

... and that is basically what I read on another website.

Edited by masternoxx
Link to comment
Share on other sites

So I looked through the quest and I didn't see any code to set her non-essential, so I assume it must be on one of her conversation lines.

I'll keep looking but if you know it would save me a lot of time. thanks

bump

 

Perhaps it needs to be set as some type of magic effect, and it will take effect immediately? I am saying that because of the spell mod that was mentioned.

Edited by masternoxx
Link to comment
Share on other sites

The stage to make her non essential is set when Season Unending(MQ302) is completed, which is Stage 350. The stage being set is stage 50, but that is then called from stage 40 in the main quest (MQ301).

 

In anycase:

 

 

; MQ302 completed
SetObjectiveCompleted(25)
SetObjectiveDisplayed(30)

if MQ302.IsRunning()
    SetActive(true)
    MQ302.SetActive(false)
endif
; Blades now go directly to kill Paarthurnax dialogue if not there already
MQPaarthurnax.SetStage(15)
MQDisableClutter.Disable()
; make Elenwen unessential
Elenwen.SetEssential(false)
Link to comment
Share on other sites

  • Recently Browsing   0 members

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