Jump to content

MesaSolar

Premium Member
  • Posts

    104
  • Joined

  • Last visited

Everything posted by MesaSolar

  1. I found a property setting to have the player own the settlement. That seemed to fix the enemy problem. Next I'm on to scripting for the actual quest. I copied the script from the Min01 quest and deleted what I didn't need. This is what I have so far: Scriptname APWQuest07Script extends WorkshopEventsQuestScript Conditional bool initialized = false bool bAllObjectivesComplete = false Conditional ;WorkshopEventsQuestScript myWorkshopEvents ; called once by startup stage function InitializeQuest() if initialized return endif ;myWorkshopEvents = (self as Quest) as WorkshopEventsQuestScript ; register for events RegisterForRemoteEvent(Game.GetPlayer(), "OnLocationChange") RegisterForRemoteEvent(Alias_Preston.GetActorRef(), "OnLocationChange") endFunction ; call when starting beds objective to check for beds already made function InitializeBedsObjective() float beds = GetBedsRating() debug.trace(self + " InitializeBedsObjective: starting beds=" + beds) if beds > 0 WorkshopParent.UpdateWorkshopObjectivesSpecific(self, WorkshopObjectives, Alias_Workshop.GetRef() as WorkshopScript) ; check if everything is complete already HandleWorkshopEvent() endif endFunction ; call when starting water objective to check for water already made function InitializeWaterObjective() float water = GetWaterRating() debug.trace(self + " InitializeWaterObjective: starting water=" + water) if water > 0 WorkshopParent.UpdateWorkshopObjectivesSpecific(self, WorkshopObjectives, Alias_Workshop.GetRef() as WorkshopScript) ; check if everything is complete already HandleWorkshopEvent() endif endFunction ; call when starting food objective to check for food already made function InitializeFoodObjective() float food = GetFoodRating() debug.trace(self + " InitializeFoodObjective: starting food=" + food) if food > 0 WorkshopParent.UpdateWorkshopObjectivesSpecific(self, WorkshopObjectives, Alias_Workshop.GetRef() as WorkshopScript) ; check if everything is complete already HandleWorkshopEvent() endif endFunction ; call when starting food objective to check for food already made function InitializeSafetyObjective() float safety = GetSafetyRating() debug.trace(self + " InitializeSafetyObjective: starting safety=" + safety) if safety > 0 WorkshopParent.UpdateWorkshopObjectivesSpecific(self, WorkshopObjectives, Alias_Workshop.GetRef() as WorkshopScript) ; check if everything is complete already HandleWorkshopEvent() endif endFunction function HandleWorkshopEvent() WorkshopScript workshopRef = Alias_Workshop.GetRef() as WorkshopScript ; wait for recalc to finish workshopRef.WaitForWorkshopResourceRecalc() ; if all objectives are complete, then set completion variable bool allComplete = true int i = 0 while (i < WorkshopObjectives.Length) && allComplete WorkshopParentScript:WorkshopObjective theObjective = WorkshopObjectives if IsObjectiveCompleted(theObjective.index) == false allComplete = false endif i += 1 endWhile bAllObjectivesComplete = allComplete endFunction float function GetBedsRating() return WorkshopParent.GetRating(Alias_Workshop.GetRef() as WorkshopScript, WorkshopParent.WorkshopRatingBeds) endFunction float function GetPowerRating() return WorkshopParent.GetRating(Alias_Workshop.GetRef() as WorkshopScript, WorkshopParent.WorkshopRatingPower) endFunction float function GetWaterRating() return WorkshopParent.GetRating(Alias_Workshop.GetRef() as WorkshopScript, WorkshopParent.WorkshopRatingWater) endFunction float function GetFoodRating() return WorkshopParent.GetRating(Alias_Workshop.GetRef() as WorkshopScript, WorkshopParent.WorkshopRatingFood) endFunction float function GetSafetyRating() return WorkshopParent.GetRating(Alias_Workshop.GetRef() as WorkshopScript, WorkshopParent.WorkshopRatingSafety) endFunction ReferenceAlias Property Alias_Preston Auto Const ;will change to my own NPC ;ReferenceAlias Property Alias_Workshop Auto Const Location Property APWWDLDMadTeaPartyLocation Auto Const ;WorkshopParentScript Property WorkshopParent Auto Const GlobalVariable Property APWQuest07BedCount Auto Const GlobalVariable Property APWQuest07BedTotal Auto Const GlobalVariable Property APWQuest07BedPercent Auto Const GlobalVariable Property APWQuest07WaterCount Auto Const GlobalVariable Property APWQuest07WaterTotal Auto Const GlobalVariable Property APWQuest07WaterPercent Auto Const GlobalVariable Property APWQuest07FoodCount Auto Const GlobalVariable Property APWQuest07FoodTotal Auto Const GlobalVariable Property APWQuest07FoodPercent Auto Const GlobalVariable Property APWQuest07SafetyCount Auto Const GlobalVariable Property APWQuest07SafetyTotal Auto Const GlobalVariable Property APWQuest07SafetyPercent Auto Const GlobalVariable Property APWQuest07TravelProgress Auto Const { tracks Preston's progress to advance travel scene from Concord to Sanctuary } GlobalVariable Property APWQuest07TravelPlayerLastTimestamp Auto Const { timestamp from last time player was nearby when NPC hit a travel trigger - how long has it been since player was "nearby"}
  2. I followed this tutorial but when I activate the workshop I get a message that I need to clear the enemies from the location even though there are no enemies or NPC's at this location yet. Any idea what could be causing this?
  3. I have my settlement built and am ready to start scripting the quest. Min01 has its own quest script which I'm assuming I can copy and just adjust some parameters to match my quest. Not sure where to start though and I'm still confused when looking at the quest stages of Min01. Appreciate any help making this work.
  4. I'd like to copy/mimic the Sanctuary quest where the player has to build certain items from the workshop to make Sanctuary a settlement for the minutemen. I took a look at the Min01 0005DEE4 quest in the CK and it's a bit of a mess so I'm hoping someone here might be able to dumb it down for me. 1. I need to set up an area within my custom worldspace as a settlement 2. Obviously need someone to report to like Sturgess. ( I have an NPC in mind already) 3. Need to be able to check for each task being done. Sheltered beds, clean water, food and defenses.
  5. Stage 50: Kill the thief SetObjectiveDisplayed(50) SetObjectiveDisplayed(55) {where 55 is the optional objective of getting help from the clubs faction} Stage 60: Kill the Spades Faction and their leader. SetObjectiveCompleted(55)SetObjectiveDisplayed(60)APW_Spades_Faction.SetEnemy(APW_Clubs_Faction)APW_Clubs_Faction.SetAlly(PlayerFaction) Stage 70: Collect the object (this stage sets after killing the spades faction AND/OR if you just kill the leader/thief)SetObjectiveCompleted(50)SetObjectiveCompleted(60)SetObjectiveDisplayed(70) So how do I clear objective 55 (optional get help) from stage 70 if and only if stage 60 is done? Can I use IsStageDone along with SetObjectiveFailed? How would I do that at stage 70? Some kind of "IF" statement in the script?
  6. So I have some progress but still need help with one more thing. When the player takes the optional objective of recruiting help from the Clubs faction everything runs smoothly. I have the player faction and Clubs faction fighting together against the Spades faction with a kill counter in effect. But if the player doesn't get their help and just kills the thief outright, the optional objective still displays. How do I clear that objective without marking it as complete? I can't use SetObjectiveCompleted because the option wasn't taken in the 1st place.
  7. So here's what I've got so far: Stage 50: Kill the thief or recruit Clubs faction SetObjectiveCompleted(40)SetObjectiveDisplayed(50)SetObjectiveDisplayed(55) Where 50 is kill the thief and 55 is recruit Clubs faction. I have no idea where to go from here though.
  8. I have an object fetch quest involving a unique NPC that has stolen an item from another. The thief is located in an interior cell that has two factions in it. I was going to simply put an objective to kill the thief, then retrieve the object, but now I'd like to set an optional objective to recruit the competing faction to aid the player. Thinking it would look something like this: Stage 40: SetObjectiveDisplayed(40) SetObjectiveDisplayed(41) With 40 being kill the thief and 41 being recruit the competing faction as the optional objective. Then I'd like to set objective say 42 to kill the thief's faction and a defaultaliasondeath script to retrieve the object once the thief dies. But that's where I'm unsure of how to handle this. I'm thinking I would set up multiple objective targets under the Quest Objectives:Target Ref for stage 42. But what would happen if the thief gets killed before his faction is taken out completely? How would I set Stage 42 and when should I introduce stage 50(retrieve the object) Sorry if that was confusing, and thanks in advance for the help.
  9. Ah. I see. Well This happened after I copied the exterior of Medford Memorial Hospital to use as a template and save myself some time, but the objects I copied take up more than one cell, so I guess I'll just have to build my hospital from scratch if I want to avoid these errors.
  10. Thanks. ObjectReference did the trick. I had to do it this way because it's an NPC alias that is supposed to trigger the box, but it was triggering whenever the player walked through it despite setting the SetStage and PreReq Stage parameters.
  11. Got this in my current warnings and not sure what it is or how to fix it. This is a a custom worldspace I am working on. MASTERFILE: <CURRENT> CELL 'Wilderness' (01005739) Reference (0100725B) attached to wrong cell for its location: 'Wilderness' (01005739) (-3, 5) in WorldSpace 'APWWDLDworld' (0100176B)
  12. What would the property type for a trigger box be? I need to have a setstage trigger as initially disabled, then enable it at a certain stage to avoid a quest starting early.
  13. Thanks, that was way easier. Ran into a bug though, some of the distant objects turned pink. any idea what causes that and how to fix it?
  14. Looking for the best tutorial or instructions to generate LOD on my custom worldspace. I found this but it seems outdated and overly complicated. I seem to remember Skyrim LOD was simpler, but I'm not sure. Appreciate the help.
  15. Not the answer you're looking for, but you could always link multiple worldspaces together. That's what I did for my mod.
  16. How do I ensure the camera centers on the speaker during player dialogues and scenes between NPC's? Feels like a stupid question but the camera keeps defaulting to the player and off the speaker during my player dialogue scenes.
  17. I got it working. Followed this tutorial on YouTube to set up the companion and affinity system: I cloned Cait, cloned the ComCait quest, then set the conditions above on the start greeting of the scene. Then all you have to do is run a fragment at the end of the dialogue to start the quest myquest.setstage(10) and it works! I did have to have the following in my fallout4custom.ini file as well. Don't know why, but my mod doesn't work without it. Also required for CBBE to work: [Archive] bInvalidateOlderFiles=1 sResourceDataDirsFinal=
  18. So I did so more digging and found a couple conditions on the ComCait quest Conditions: Get Value: Actor Value: "CA_Wants to talk" =1 Get Value: Actor Value: "CA_AffinitySceneToPlay" : Global: CA_Scene_Infatuation" How are these values related to the script you suggested?
  19. Is anyone familiar with how the companion affinity system triggers a dialogue scene between the player and companion? I'm thinking specifically of Cait and how she "wants to talk" to the player that then triggers a dialogue scene that starts her companion quest. I know this isn't the easiest way to start a quest but it's how I'd like to structure my mod. -MesaSolar
  20. Found an answer. Looks like you have to delete roommarkers and portalmarkers for the walls and objects to load correctly. Weird issue but it works.
  21. I duplicated several interior cells (caves) for my mod and noticed that the entire space isn't loading at once. It almost looks like there is no LOD generation like an exterior space. Anyone run into this before and know how to fix it?
  22. The grass in the base game areas is obviously there just not when i go to my created worldspace. Nope, the box wasn't checked. Just to clarify the grass appears while im in CK, but when i go in-game to check it, the grass doesn't appear. Did you ever find a fix for this? Running into the same problem with my custom worldspace.
  23. I set up a companion using Seddon 4494's most recent guide And ran into a really weird problem. My companion starts in a hallway with several barred doors and only one that is open to walk through, but somehow the companion walked through one of the barred doors and now can't follow the player properly. Any idea what could cause this and how to fix it?
  24. I am attempting to use a racemenu preset for a custom follower. I used the in game export feature by typing "spf mycharacter" into the console. This generated the necessary .npc file. I then went into the CK and selected Import for the Character Gen Parts tab, found my .npc file inside data/skse/plugins/chargen and opened it. But there are no changes in game. What am I doing wrong?
  25. So I started another play through of my mod just to test everything and the first time I try to fast travel it CTD. I'm using the tmm 1 command before I go in game to show all the map markers, making it easier to test my mod. I coc into whiterun to start the game, go through a couple quest objectives and get to a point where the player needs to go to Orotheim then it CTD after selecting the fast travel option.Then I tried traveling with a coc command, but when I leave Orotheim I get another CTD. I don't have any other mods loaded. Just the official DLC and the Unofficial Patch. I tried using the "quick auto clean" feature in SSEedit but it's still doing this. What's my next move?
×
×
  • Create New...