-
Posts
1217 -
Joined
-
Last visited
Nexus Mods Profile
About llamaRCA
Profile Fields
-
Country
United States
-
Favourite Game
Fallout 3
Recent Profile Visitors
194106 profile views
llamaRCA's Achievements
-
OnPackageStart/End/Change Events Never Called
llamaRCA replied to CriusX's topic in Fallout 4's Creation Kit and Modders
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. -
How do you add Keywords to Topics?
llamaRCA replied to dagobaking's topic in Fallout 4's Creation Kit and Modders
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. -
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.
-
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.
-
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.
-
(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:
-
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..
-
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.
-
What do you want to see in a companion mod?
llamaRCA replied to Thuggysmurf's topic in Fallout 4's Discussion
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. -
Exact Aggression differences?
llamaRCA replied to ravayen's topic in Fallout 4's Creation Kit and Modders
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. -
Creating a proper enemy sniper.
llamaRCA replied to csbx's topic in Fallout 4's Creation Kit and Modders
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 -
Duplicate scene including all dialogue
llamaRCA replied to csbx's topic in Fallout 4's Creation Kit and Modders
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 -
How to make NPC use PathToReference?
llamaRCA replied to dagobaking's topic in Fallout 4's Creation Kit and Modders
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. -
Custom Companion Interjections in Quest Lines
llamaRCA replied to Reginald001's topic in Fallout 4's Creation Kit and Modders
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.