Jump to content

llamaRCA

Premium Member
  • Posts

    1217
  • Joined

  • Last visited

Everything posted by llamaRCA

  1. It sounds like a registration issue to me since Hoamii has confirmed that the events work. If it were me I'd experiment more with registration because 1. failed/lack of registration will give you what you are seeing 2. We know the package events can/should work because Hoamii has confirmed that It could be a timing issue with the registration. Registration has to take place before the event and some events need a registration each time you want to call the event. To cover both possibilities you might try adding registrations for the package events into the timer to see if it works the next time through the timer cycle.
  2. Hi :smile: You don't add the keyword to the topic itself. Go make the keyword you want and then go into the Player Dialogue tab. At the top of the page under the tabs is a pulldown for Keyword and that's how you associate the keyword with the individual info. To set it up make a dialogue topic (inside of an existing branch or make a new branch) then click on the new topic so it's highlighted (or you can rename an existing one). Then use the Keyword pulldown to change the name of the topic to the keyword. Then create the info inside that topic. Then when you call SayCustom it'll play that info.
  3. Even when you tell them to go they won't stay where you send them. If you want them to stay in a particular location tell them to stay so they aren't following you. They'll still follow you eventually, it isn't a true wait, but it is closer to what you seem to want.
  4. The AO_Comment keywords are there so the script on the triggers around the gameworld will do its thing when she hits them. The CAT_ keywords aren't necessary to get those comments to play. My script handles triggering them. I listen for the event and play the comment when the event is received with SayCustom(). There are a few issues with the system, I agree. That particular Diamond City comment is a unique comment. There are about ten of those comments that play the first time a companion enters a location with the player, or maybe it only plays if it's the first time the player enters that location. I'm not sure because I didn't test it enough to figure out the subtleties (I don't use it). Most unique location comments don't work that way (Salem museum comments, etc). The first companion to the trigger wins and delivers their comment. Any other companions present won't deliver the line. So in that case you get one comment from one of the companions which is more pleasant for the player, but does mean you may have written dialogue that the player doesn't hear in that moment because another companion got to the trigger first. I did that for Heather's idle chatter as well. There are several ways you can get chatter into the game that doesn't play exactly when the vanillas will deliver their lines. I didn't completely reject the AO_ system though and used a lot of the system in locations where I really wanted her to interact in that moment. I figured it was better to write the lines to have her talk about the interesting moment even though other companions might steal the trigger and silence her now and then. Honestly, I love the vanilla, dev-placed triggers. You can get an awful lot of dialogue into the game via creative use of the systems available, but sometimes a trigger is the only way to get a comment when you want/need it and having them in the vanilla game is a headache-free luxury.
  5. Hi Thuggysmurf :) The AOT_ comments and the CIS_comments are driven via the Story Manager and quests that are started up out of that. That sequence is often kicked off via a trigger in the gameworld that has its own script on it for these things. There are a lot of AO_ and CIS_ quests that are handled in this set up to get various comments and behaviors working (dogmeat finding stuff, comments in locations, companions talking to other actors, etc). The CAT_Event comments are run via events triggered by something the player or companion does (when the player uses a workbench, when the player and/or companion go swimming, etc). You can have a script that catches those events and triggers a comment in response to it. You can find examples of scripting to catch the events and set up comments on them in the FollowersScript (onplayerswim(), onplayeruseworkbench(), etc). I wrote my own script for catching quest commentary. The COMQuestCommentary, iirc, requires using the companionactor script, and I wanted as little tie-in with the vanilla companion system as possible. That's because the combat and detection lines are hardcoded to work and they work on all actors. The other comments are run via the Story Manager and additional scripting and quests are needed to get them into the game.
  6. When you use the default, vanilla categories in Misc comments you don't have to set any conditions to make that comment happen (that's assuming the comments play in game for vanilla characters). The conditions you need are to identify the speaker (your actor in this case or if the quest only handles your actor's dialogue you can do that condition once on the front page of the quest; see the vanilla companion's dialogue quests to see what that looks like. It's usually done on the alias rather than the base actor itself. In individual dialogue lines the condition used is often the base actor rather than the ref alias). Reginald001 answered how to get your combat lines working. When you do the condition you have a choice (there's a pull down menu in the condition) where you can choose player, ref, combat target, etc). If you want your companion to talk about specific combat targets use the combat target identifier for that particular condition and make sure they are set as the target rather than the subject (another choice to make in the condition) then you can use race, getisid and base actor id, faction, etc depending on which one is available/works for the group/individual you are trying to get your companion to comment about.
  7. (edit) For SCENE priorities I can definitely confirm that the LOWER the Index of a scene, the higher it's priority is (!) If I give the 'bad customer' radiant quest scenes a higher index than the 'newrecruited' scenes, they never play, as the 'newrecruited' scene then takes precedence. How you are controlling your scenes if priorities affect them that much? Are you using conditions to get to the scenes you want when you want them? Do you use generic greetings which don't explicitly feed into specific scenes so that whichever scene decides to play is the one that plays? Are you attempting to randomize scenes? Re: Story Manger I use the Story Manager a lot in Heather. I have about 20 quests set up to trigger out of it and several of them repeat regularly. I have had no compatibility issues. Can you explain further what kind of compatibility problems you are seeing? @joerqc - Thanks :smile:
  8. Story Manager is not for the faint of heart and takes a LOT of trial and error to get working right. If it were location change events, I could help you 100%, but with scripted, I might only have about 50% of the information you'll need to get it working, maybe 80% at the most. The SM is great and although the documentation isn't all that good, especially about scripted events, the others aren't so hard to figure out. There are countless examples of how to set them up in the vanilla content. However, like everything else you build in the editors you may have to fiddle with them to get them doing exactly what you want. I used the SM for the convos Heather has with other companions and it works reliably and didn't use a scripted event. The beth devs use the scripted event because of how they control the companion conversations. It doesn't have to be built that way. The one thing you need to know about the ChangeLocation event is that it isn't 100% reliable. You can enter a location and nothing happens. Your quests don't run, etc. This can/will happen under certain situations if you call ChangeLocation() from a script as well. What it means for companion dialogue is that it's best to write generic comments for locations or ones that are very specific to quest stages, etc because if you write a comment that only makes sense when you first enter the location it won't always play when the player first enters and sounds dumb when it plays when the player leaves the location..
  9. In earlier games 100 was the highest priority. If you sort the vanilla quests in FO4 by priority the ones that are highest (100, 99, etc) will often have "override" in their title which usually requires a higher priority. The lowest priority, 0, in the list is Achievements, which while important, shouldn't take a higher priority over playable quest content. I only use that option on generic dialogue with no restrictive conditions. If I have lots of dialogue that has a lot of conditions I don't use it. One way to do that is to group your dialogue and then use that for the most generic dialogue group but not in the groups that contain lots of conditions that restrict when they will play. I'm not sure what info you are looking for here. Can you clarify further? You'll find it in Character > SM Event Node. SM Event Node is the Story Manager. I always add my new nodes at the bottom of the list to avoid any issues.
  10. So.much.this. The vanillas are weird (Deacon I'm looking at you) or boring and annoying once they've been romanced (Danse). It'd be lovely to have a truly well written and well executed male companion. I've heard of at least two that are in the works, but none have made it to release yet.
  11. https://www.creationkit.com/index.php?title=Aggression There's a table from the CK wiki that describes each level. The Confidence and Assistance stuff on that same page play a role in combat behaviors as well.
  12. You can apply combat override packages. The Beth devs used "hold position" packages for it. You might be able to set the location of that package to self with a radius of 0 to keep the actor in place. It may/may not work, I can't say since I haven't tried it, but it's worth a shot since the packages do apply and affect actor behavior. The companions use this setup if you want to take a look at how it's built. Edited for clarity
  13. If you set up a new quest with a new scene you can copy the actions from the original scene into the new one. However, unless the dialogue used in the original scene is "shared" which would allow you to use the same dialogue files again in your new scene with no additional work, you will need to add copies of the dialogue used in the new scene and rename them with the file names from the dialogue in the new scene. Oh, there is one more thing. There is a spot on the dialogue form that seems to indicate that one can point dialogue to a chosen file. ("Override Filename"). I don't know if it works (I've never tried it) but you might experiment with that to see if you can rename your new dialogue with the same file name as the original one. Edit: added more detail
  14. You can do it either way. Run a fragment on the phase itself or you can use one of the events found here https://www.creationkit.com/fallout4/index.php?title=Scene_Script I can only confirm that OnEnd() works as intended, I haven't tried using any of the others.
  15. I'll continue looking into it for DARRYL. So far it's been hard. It runs my stage once, then never again... So I simplified and I figured I could just loop a scene forever as long as the quest is active, check for conditions, just fire one line which is set to Single, go to a wait loop, then restart the scene. But it's not looping whatever I do, so I think some other quest for Ivy or a companion alias is stopping the scene. The script the beth devs wrote to award affinity during player conversations may be useful to you. They are doing what you are attempting to do in that they are inserting reactions at different quest stages, but they are showing messages at that point rather than triggering dialogue. If you've already written up your version you might consider adding what you want to that same script by adding the quest stages you are interested in and triggering the dialogue from that. Feel free to download Heather to see how I've done it if you cannot get it working with the vanilla models. Mine is done by catching some of the vanilla trigger points for affinty, monitoring for quest stages and end of scenes, etc. You'd be able to do something similar with the quest stages you are interested in. Heather's choice of what to comment on is extremely tailored to her personality and what she cares about. I play the comments she delivers in a separate quest to guarantee that the scene will play every time I want it. There's some indication in the scripting I went through that scenes in the same quest as the script calling the scene may fail to start and I wanted to avoid that issue. I also build additional dialogue using the Story Manager and quests that trigger out of those. So after two days of insistent searching I managed to get the behavior I wanted, largely due to your (and others') hints and tips on events and triggering. This morning I had the strange idea to look into Deacons' switching clothing behavior and it gave me the epiphany I needed. When I posted this thread I was still completely in the dark on the scripting side. And I was under the impression that I could do this without registering an event, but instead by making a separate looping quest. After looking at Deacon I went back to registering an event. I attached a DARRYL script to my companion quest: SOLUTION Scriptname CompanionDARRYLScript extends Quest Event Actor.OnLocationChange(Actor akSender, Location akOldLoc, Location akNewLoc) ; watch for player to change location if akSender == Game.GetPlayer() Debug.Trace("DARRYL has detected the player has moved.") ; Say something relevant about the current situation p_DARRYLCompQuestSpontaneousChatter.Start() endif EndEvent Scene Property p_DARRYLCompQuestSpontaneousChatter Auto Const In the 'recruit' stage of the QUEST STAGES tab I attached the event: ; register quest script for remote events: kmyQuest.RegisterForRemoteEvent(Game.GetPlayer(), "OnLocationChange") And in the 'dismiss' scene I unregister the event: ; unregister quest script for remote events: kmyQuest.UnregisterForRemoteEvent(Game.GetPlayer(), "OnLocationChange") This command in the companion script (SCRIPTS tab): p_DARRYLCompQuestSpontaneousChatter.Start() Is called whenever the player enters a new location with DARRYL, this scene is a dialogue action only scene inside the DARRYL companion quest, which has many comments with conditions on current quest stages. This was exactly the behavior I was searching for. :smile: Just a heads up about some weaknesses with the location change event. 1) Location change event doesn't always happen when you want it to. If the player has been to the location before they go there with your actor the event may fail and your dialogue won't play properly. 2) The event may not trigger when the player enters the location, even if it's the first time, but will trigger when the player leaves it. This means if you write dialogue specifically for the first time the player and your actor arrive it won't sound right when it doesn't play until they leave the location.
  16. I'll continue looking into it for DARRYL. So far it's been hard. It runs my stage once, then never again... So I simplified and I figured I could just loop a scene forever as long as the quest is active, check for conditions, just fire one line which is set to Single, go to a wait loop, then restart the scene. But it's not looping whatever I do, so I think some other quest for Ivy or a companion alias is stopping the scene. The script the beth devs wrote to award affinity during player conversations may be useful to you. They are doing what you are attempting to do in that they are inserting reactions at different quest stages, but they are showing messages at that point rather than triggering dialogue. If you've already written up your version you might consider adding what you want to that same script by adding the quest stages you are interested in and triggering the dialogue from that. Feel free to download Heather to see how I've done it if you cannot get it working with the vanilla models. Mine is done by catching some of the vanilla trigger points for affinty, monitoring for quest stages and end of scenes, etc. You'd be able to do something similar with the quest stages you are interested in. Heather's choice of what to comment on is extremely tailored to her personality and what she cares about. I play the comments she delivers in a separate quest to guarantee that the scene will play every time I want it. There's some indication in the scripting I went through that scenes in the same quest as the script calling the scene may fail to start and I wanted to avoid that issue. I also build additional dialogue using the Story Manager and quests that trigger out of those.
  17. I've done this for Heather and for the most part it worked out very well. Be aware that you may need to do some tinkering with your script as you test the dialogue. It won't always play when you want it to, etc and you may need to add timers to delay a line or move it to another quest stage. I'd suggest you add some debug stuff to the script so you get either a notification during gameplay or a note in the log that tells you the parrticular dialogue line has played like it should. There are times when things won't happen as you expect them to even if the script is doing what it should (line should have played but someone else talked over it, etc). It can take a lot of time to get this type of commenting running smoothly.
  18. I completely ignore the settlements and the game is great fun. I prefer FO3, but the superior gunplay and improved mechanics in FO4 make up for a lot of what it lacks.
  19. Seems like you'd miss stuff using that (like the locations you can only find by triangulating on radio signal). Unless you're on your umpteenth playthrough and really don't care about finding the hidden bunkers and suchlike anymore.... I'm sure that's true for some players, but I dislike most of the popup messages the game wants to show me ( so many useless tutorial messages, for example). I'd rather find bunkers by wandering into one than have the game prompt me that there might be something nearby to find.
  20. Here's three of mine: Lunchbox SurpriseAdds fun stuff to lunchboxes in the game. No More Radio Station NotificationsTurns off the annoying found/lost radio notification messages that pop up all the time Worthwhile Caps StashesAdds a variety of items to the Caps Stash containers in the game
  21. No, it's not a dumb way to do it. After I read your first comment I was going to suggest you register for the distance event in the onstageset event rather than onquestinit.
  22. There's a flag on the NPC record that can be checked in the CK that stops that (Doesn't affect stealth meter). I'd assume there's a way to get to that in FO4Edit, but don't know where/how. I always use the CK.
  23. Read the wiki description of what Reset() does. It both resets the quest stage to 0 and empties your aliases.
  24. PlayerRef is definitely set up properly because the rest of the script works fine using PlayerRef. The entire rest of the mod is done with NO quest, I really do not want to involve an entire quest just for this note. But thank you anyway llamaRCA and for using some of your time to write all that to try to help me. I guess I will just drop the book in a hidden cell and use a remote "activate" like I did in Skyrim. If that will not work I will just give the player a pop up to tell them to read the note. That's just one step of how I did it. You wouldn't need the quest to set it up that way if you saw any advantage to having a message popup on screen. @Hoamaii - I mean that we literally cannot force the player to read the content, nor can we detect if/when the player reads it. When you click on a note in your Pipboy it brings it up for you to look at, but you don't have to read a single word on that page before you close it again. Edit: for clarity
×
×
  • Create New...