Jump to content

Photo

Problem with quest start

modding quests scripting

  • Please log in to reply
17 replies to this topic

#1
SantaMatt

SantaMatt

    Enthusiast

  • Members
  • PipPip
  • 143 posts

OK, first post here for me. I have a mod called Orbital Station although the esp file is called SpacePort. It is a settlement/player home mod. To start the quest to acquire Orbital Station you pick up a holotape note in the Diamond City Science Center. There is a script attached to the holotape that starts the quest OrbitalStationAcquire. 99% of the people running the mod it works fine. If I load it, either manually or using MO2, it works fine for me. But that 1% can not get the quest to start, not even by using the start quest command at the console. I do have a debug line in the script so I can see if it runs, which it does. I imagine I have something set wrong in the quest itself but I am at a loss as to what is wrong.

 

Is there a modder out there willing to take a quick look at the mod to see if they can figure it out?

 

Thanks in advance,

Santa Matt

 



#2
SKK50

SKK50

    Institutum delenda est

  • Premium Member
  • 5,782 posts

Check that all quest aliases are set to OPTIONAL, if any one fails to fill (which can be random) the quest never starts.

 

Thats 99% of inconsistent quest starts.

 

Then in a quest attached script OnQuestInit() or Stage fragment marked [run on start] debug.trace all your aliases to check if anything is not filling.



#3
Zorkaz

Zorkaz

    Resident poster

  • Premium Member
  • 4,496 posts

1. What SKK50 says.

 

2. If you provide both .esl and .esp make sure to include both quest fragments. Sometimes when .eslyfing something quest and perk fragments get compacted too.

The Archive Tool however doesn't automatically include them



#4
SantaMatt

SantaMatt

    Enthusiast

  • Members
  • PipPip
  • 143 posts

OK, we make progress. First all of the aliases were already set to Optional. I added a script onInit to the quest with "Debug.Trace(OSAA.GetAlias(6))" for each alias. I now get a a warning in the script log "[04/06/2022 - 09:11:47AM] warning: Property Alias_FirstRemoteHolotape on script Fragments:Quests:QF_OrbitalStationAcquire_01008EBA attached to OrbitalStationAcquire (4F008EBA) cannot be initialized because the script no longer contains that property" I can not find that alias anywhere. Not in any quest or quest fragment. I even did a global search for FirstRemoteHolotape. At one time I had an MCM menu to skip the quest and just get the orbital station but all of that has been removed. Maybe there is some kind of orphan record left behind?

 

As for the esp/esl issue, let me clarify. The original version 1 of Orbital Station had no quest you just made a holotape at a chem station and you had it. All of the resource names started with  OrbitalStation to make it easy to find things. When I made version 2 I added the quest and changed the esp to SpacePort but the mod is still called Orbital Station. All of the new resources were named beginning with SpacePort, again for organizational reasons. Version 2 still had the MCM entries and came in two versions a basic version and one requiring all DLCs. Version 3 added some additional quests and world spaces and requires all DLCs there is no basic non DLC in version 3. So, there is no esl for this mod.

 

Would it be better to completely remove the Orbital Station Acquire quest and make a new quest under a different name? It would be a lot of work but if will fix this I will do it.

 

And thank you for your help so far.



#5
Zorkaz

Zorkaz

    Resident poster

  • Premium Member
  • 4,496 posts

Just make a new one. Sometimes parts of a buggy quests are baked into the save and regardless of what you do the quest issue won't get resolved.



#6
SKK50

SKK50

    Institutum delenda est

  • Premium Member
  • 5,782 posts

It sounds like you are suffering the cancer of orphaned LOOSE FILES. 

 

You probably have an old compiled PEX in the \Data\Scripts hierarchy that is still being loaded just because it is there. Find it and and nuke it. 

 

One of the handy ways to track that s*** down is to File/Ceate Archive as that lists all the changed scripts that have links to the soluiton, with a strong script naming convention its EZ to see the problem. If you dont rename script fragments its harder.



#7
Zorkaz

Zorkaz

    Resident poster

  • Premium Member
  • 4,496 posts
If you dont rename script fragments its harder.

How can you rename fragments?



#8
SKK50

SKK50

    Institutum delenda est

  • Premium Member
  • 5,782 posts

OK working with fragments as a truely hateful business on large works.

 

They are the ONLY REASON I have had the CK corrupt an ESP when they miscompile, loose properties and corrupt, get lost, go bad. And you can't see 'em in xEdit to hack a fix.

 

Quest stage fragments ? Dont use quest stages, use a quest script with stage functions and a queststage global variable. 

TopicInfo fragments ? dont do anything in them except call a quest script function. 

Holotape fragments ? dont do anything in them except call a quest script function. 

Perk fragments ? dont do anything in them except call a quest script function. 

 

/pro tip rant over 

 

Renaming script fragments means that when I build an arhive I can check every single asset starts with SKK_ if it doesnt its probably a cancerous loose file where I have been hacking base game scripts to insert debug checkpoints which if distriubuted will f*** players games. Ho ho.

 

Papyrus Fragment

 

[Advanced] tab 

 

[Rename Script] button

 

Tip: Always keep the prefix like PRKF_ (because odd things have happen to my solutions when I dont).

PRKF_SKK_MWAActorCommandMenuPerk01.psc 

and the call it makes to keep all "business logic" in easy to maintain quest scripts:

(pSKK_MWAQuest as SKK_MWAQuestScript).ShowActorCommandMenu(akTargetRef)

When you rename a fragment it often makes a new copy, so you need to look in \Fragments\Type source and compiled folders to remove the old junk. If you dont you will eventially be faced with 500 of them an no idea if they are valid in use or old junk. Oh yes. 

 

Often if you create an asset (mostly perks) and then save before adding hateful script fragments it will actually put part of the asset name in the fragment name automatically. 

 

/thankyou for asking.



#9
Zorkaz

Zorkaz

    Resident poster

  • Premium Member
  • 4,496 posts

Never had I thought of using Event OnStageSet instead of using script fragments but it makes so much more sense. Especially with the dangers of .eslyfing fragments and the resulting mess. 

Thanks, one never stops learning



#10
SantaMatt

SantaMatt

    Enthusiast

  • Members
  • PipPip
  • 143 posts

Using FO4Edit I found an extra property in the script fragment for the quest. I looked in the source psc file and the property is not there. So, I deleted the pex file and recompiled it in Creation kit. Reopened the mod in FO4Edit and the  property is still there. Any ideas on how to remove this property? Also, that script is not in the BA2 file, so it must be in the esp file?

 

The quest has 17 stages, 15 objectives and 18 aliases. I would rather not rebuild it. But if I can't remove that property I am guessing that is the next step. Please let me know your thoughts.

 

Thanks yet again.







Also tagged with one or more of these keywords: modding, quests, scripting

IPB skins by Skinbox
Page loaded in: 0.971 seconds