Jump to content

JonathanOstrus

Premium Member
  • Posts

    754
  • Joined

  • Last visited

Everything posted by JonathanOstrus

  1. Thanks for the explanation but where must the papyrus code go? When i copy it into my alias window where i created a new script it won't compile :/ Wow, talk about necroing an old thread. I'm not entirely sure I understand what you mean by you put it in the alias window where you created a new script. The specifics of what Papyrus you put in and where depends on how you're having things work. The example I provided can't be used "as-is". It would need to be modified to suit your specific quest use case. Usually you would do something like talk to an NPC and in the dialogue you have a fragment which then sets an objective. Or you would set a quest stage. Then in the quest stage fragment you would set the objective. The code snippet I provided as an example was for a totally different thing. I think it was on a debug book I made which had a series of menus that let you turn on and off different features. Assuming you're doing it from a quest stage fragment, which would probably be the most applicable for people. The simplest code is to just put in the relevant SetObjectiveDisplayed call. Since it is being called from within the fragment of the script who's objective you want to set you don't need to specify a quest. If you were trying to remotely set it then you would specify the quest similar to something like in the CK wiki example, or the code I had. A case for using a dialogue fragment instead of a quest stage, might be if you want to be able to granularly enable and disable the display of the objective. Possibly multiple times. So if you're doing it from a dialogue fragment, and the dialogue is part of the same quest that has the objective. Then you can use GetOwningQuest().SetObjectiveDisplayed(n, true/false) as appropriate. Barring either of those being an appropriate case for you, then the way you would do it is adding a property of quest type to a script (likely a fragment of some type). Then in the fragment you use the PropertyName.SetObjectiveDisplayed(n, true/false). Which is what my code example illustrates. Albeit not in a fragment format. Note that in a fragment you don't put functions, but rather what's inside of a function. My code example is from something a bit more advanced. https://www.creationkit.com/index.php?title=SetObjectiveDisplayed_-_Quest
  2. Since this has been necro'd already, something I should have noticed and pointed out long ago. Make the global update thread safe. KillCountProperty.SetValue(KillCountProperty.GetValue() + 1) Should be written KillCountProperty.Mod(1)This will ensure that during the modification operation there's no chance that the script may be suspended and the global modified by someone else first.
  3. I'm going to preface this with the fact I have not used VSCode yet. It's on my list of things to try but I just haven't had time. So some of my suggestions/needs/etc may already be supported. I presently/previously (been a while since I've done any coding) use Notepad++ the most. I tried using Atom which was nice and had better support for some features, but lacked others. The absolute #1 feature I could never live without is syntax highlighting. And I'm not talking just function name highlights, but also distinctive highlighting of declared variables and native types such as ints, floats, or strings. I realize somethings this makes code look like a christmas tree, but after using it it is something I can't live without. One big one that was missing from Atom, though added via an addon that wasn't really good, is block selection of text, then copying and pasting. For those not familiar that, it is being able to select a rectangular area within the text and manipulate it. Or paste into an area inserting such things. Notepad++ has a form of it that I still find lacking in some cases, and I use another generic text editor EmEdit when I need specific assistance with it. I know this is a bit of an edge case use, but hey you asked for other comments. I also utilize the functions list that Notepad++ supports extensively. I suspect VSCode may have this functionality already in some fashion. Something that I find missing is the inclusion of variable definitions underneath an expandable function list to show which variables are declared within the function. Not something that is absolutely necessary but it can be useful. This is something I'm used to from full out Visual Studio and other full featured programming IDEs.
  4. Ok so it's kind of a mess. Couple things. You don't have connect points to enable this to be modular. Your nif hierarchy is messed up. You have a collision object outside the main NiNode. You're using offset translations. If you get the connect points working you want the connect point parent to be at the offset mount position. Then the child loads it's 0,0,0 at the parent position and rotation.The way this is normally done is your weapon record will point to a dummy nif which has a parent node for the receiver. Almost every FO4 gun uses one of a few dummy receiver nifs. Before you start trying to fix yours it would be worthwhile to go through a vanilla weapon and understand how the design is put together. My go to weapon is the 10mm pistol. Take a look at the vanilla one Weapons\10mmPistol\10mmRecieverDummy.nif. The important stuff is the BSConnectPoint:Parents. That has a P-Receiver node. The parent of the dummy is generally at 0,0,0 because it's a dummy. Just used to mount other stuff in its place. Now if you look at the receivers for the 10mm gun they point to Weapons\10mmPistol\10MMPistol.nif. Which has a BSConnectPoint:Children and a node called C-Receiver. See a pattern here? Parents have a variable named P-something, then the children have C-something. The same nif also has BSConnectPoint:Parents which adds the magazine, barrel, scope, and other nodes. Then when other OMODs are attached to the weapon, the nifs that are brought with them attach to an existing parent node. If you turn on the visibility of the connect points in NifSkope you'll see a bunch of the parent nodes, their position, and rotation. It may take some experimenting of your own to get them in the right places. I won't be able to get more in depth than that. I'd suggest searching for some youtube videos or tutorials for connect points. I'd probably stay away from the workshop building ones. The workshop furniture stuff isn't entirely relevant. They'll show at least how to copy and set up the parent nodes. But workshop item snapping is handled very differently than weapon modularity. One key thing to remember when you copy the parent/child node blocks around. Make sure their names remain the same. Parents are CPA, children are CPT. They also must be directly under the base NiNode, and listed in the properties under "Extra Data List". If you look at vanilla nif references you'll quickly understand.
  5. You said that the other parts turn invisible? If you put back the original receiver do they show up again? It sounds like you may be either missing the connect point parents or children. Can you give a link to the files? Doing modular weapons is a very delicate thing. Your base weapon record will have a dummy receiver file typically. Then your object template will attach the real receiver, grip, and other bare minimum parts. Each of the object mods for the parts will reference a nif with the part. Each of those nifs of parts has to have an appropriate parent and/or child nodes for them to attach to others.
  6. Did you mark the "Unique" box on the NPC record? You also need to set a persist location for the placed NPC reference. Otherwise it will cause the quest startup to fail filling the alias unless it's a start enabled quest. But even if it is, you should set a persist location for the NPC. It also should not be a vanilla location or it will cause an override of that location to be made in your mod.
  7. I don't play nor do I mod FO4, but I assume it's the same as it is for SLE and SSE about converting an esp to an esm or converting an esm to an esp in Wrye Bash. Is that possible to do that before loading a mod in the CK for FO4 or does the OP need to make the another esp with the resources to be a master for that mod in FO4Edit? Unfortunately the Fallout4 ck version 1.10.15 does not accept ESM flagging .esp files like the SSE / SLE counterparts does. The previous version 1.8.10 does though. But you'd need to have made a backup of it.
  8. If the mod you're trying to use assets from is a .esp, the Creation Kit will not let you use those in another .esp. This is called using a .esp master. The Creation Kit that is currently available (1.10.15) will strip all .esp files from the master list upon saving. Regardless if they have the ESM header that was previously supported. You would need to use an older CreationKit.exe file of 1.8.10 or earlier to use that method. The other option is to edit the mod the weapon comes from and set it as the active file. Then place it as desired and save. Repeat for each mod that has weapons you want to place somewhere in the world.
  9. To dismiss the current follower you need to set a property for the DialogueFollower quest and call as such (DialogueFollower as DialogueFollowerScript).DismissFollower(0, 0) ; Function DismissFollower(Int iMessage = 0, Int iSayLine = 1) That will dismiss with the default dismissal message and skip the npc speaking the dismissal voice line. To then recruit a forced npc with (DialogueFollower as DialogueFollowerScript).SetFollower(akTheActor) ; Function SetFollower(ObjectReference FollowerRef)
  10. First, in CK did you verify that the weapon is actually assigned to the property on the script for the armor record? Second, if you're using a save where the armor already has been spawned, delete the armor and spawn a new one. Preferably start with a new game, like coc to QASmoke and spawn the armor to test. Or at the very least a save where the mod has never been enabled when it was saved.
  11. You cannot add an attach parent to an object unless it is via a mod that is being attached. Just adding the keyword doesn't work that way. It has to be assigned as an attach parent type not a general keyword. The only way to add extra slots to the object is to modify the record in the plugin at design time.
  12. RE Tools. If you installed the Bethesda.net launcher then that's where you get the CreationKits for Fallout 4 and Skyrim Special Edition. Just make sure when you install them you target the game folder. It should automatically find it and offer the proper folder if you've started the Launcher at least once so it sets the proper registry keys. The only concern to be aware of in playing a normal game while having your modding tools installed, is that if you have any loose files or plugins (enabled) for your mod present then they will be in your game as well. If you don't have your plugin(s) enabled, and you do not overwrite vanilla or other mod added files, then there's no drawback to having the development stuff in your normal playthrough area. RE Vortex vs NMM. Personal preference really. I have and use both. NMM development is pretty much stopped at this point. There is some community patching and stuff going on but the releases of said patches is pretty sparse. Vortex on the other hand gets frequent updates as of late. Though it is still pretty fresh, so it has some bugs to work out. I do like the speed at which Vortex handles creating the hardlinks upon deployment of mods. And if you modify files in the data folder directly that are put in by a mod Vortex manages, it offers to save that change to the staging folder. This is nice in that, you can purge the game folder to quickly get a virgin state and then redeploy when ready and still have your changes. Do note though, that if you create any entirely new files, like a patch plugin, Vortex won't be aware of that.
  13. No. This is why there are mods that transfer ingredients from a defined container when the player activates an alchemy table. Then when the player leaves they move the ingredients back to the container.
  14. It sounds like you have another mod scripting the experience gain. You'll need to track that down and remove it to do what you want.
  15. @ironcladsoul what version of NMM are you using? The 0.65.10 from GitHub should let you have more than 255 plugins as long as the excess are flagged ESL. There was a bug previously, that I pushed a fix for a month ago, to handle sorting .esp with ESL flags but it hasn't been published by DuskDweller yet. You could still use the current published version from GitHub and use xEdit to check for compatible .esp files and mark them with ESL header flag as long as they don't need specific load order slots. That would reduce the number of full slot plugins.
  16. Did you install any DLL mods recently? ENB? CKFixes? Etc. Or even if you didn't install any recently, did you try removing any you had installed previously, like ENB? I've had rare cases where my CreationKitPrefs.ini got messed up and needed to be deleted. You might try that. Or even just moving all the CreationKit ini files out temporarily to see if that changes anything.
  17. I'm not familiar with Marvelous Designer. And I dare say a lot of people here probably are not as well. It looks interesting though. That said, if it can export to FBX or OBJ, you can use Outfit Studio to load the OBJ and then attempt to skin it to the game body.
  18. From your first post it sounds like you already got the Creation Kit for Skyrim and/or Fallout 4? If I'm wrong, the Skyrim Classic/Legendary Edition aka Oldrim is acquired from Steam. The Creation Kit for Skyrim Special Edition and Fallout 4 is acquired from Bethesda.net (download the launcher and it's on the list of installable things). The "GECK" is for older games Fallout 3 and Fallout New Vegas. If you're familiar with C# and JavaScript then picking up Papyrus scripting language should be a breeze. Some fairly basic things about Papyrus though: Papyrus is not a case sensitive language; It is a typed language (like everything except JavaScript really); Arrays have a limited number of entities (128 max). If you checkout the tutorial Papyrus Primer that ZeroAndOne linked it should cover the rest. There's a lot of video tutorials from DarkFox127 on YouTube that covers quite a bit of almost anything you might want to do.
  19. The load screen art is in the Load Screen section under Miscellaneous. They load a static record. So it'll take some browsing to find the right one but that should get you started. Once you find the static it will give you the nif path.
  20. Short version: the workbenches you're thinking of don't use formlists for categories. They use keywords and are only 1 category deep. Ever. The repair/upgrade workbenches (armor/weapon) use the attach parent of the objects to name the mod category. None of the repair/upgrade workbenches support more than 1 level of category. The power armor repair stations is similar to the armor/weapon upgrade benches. They're slightly different in that they list items in the player inventory and in the power armor furniture inventory. The other crafting type workbenches (armorsmith/chemlab/etc) which are used for crafting entirely new items from materials, build a list of the categories based on the COBJ that link to that workbench keyword. Then it looks at each COBJ and finds the category keyword and uses that for the category menu item. They only support 1 level of category. The above listed benches do not really use formlists normally. They can use a formlist as the "created item" to allow crafting any of the items in the list using that one recipe instead of needing a separate COBJ for each item. But that's it. I don't recall it being used very often in vanilla, if at all.
  21. Try this. If you need to change the RACE FormID it's in the top of the script in the Initialize function. Change line 15, with slAddRACE.Add. If you want more than one RACE added, then add another line just like it with the proper FormID of the race you want added. Note that the file you run this on needs to have access to the form. So if it's not provided by that file it needs to have a master pointing to it. Also there is no checking to see if the base MNAM race points to the race you want to add, it will just add it to the MODL additional races list regardless. I borrowed this from another script and made some changes, I don't remember which one though.
  22. Those are your loose F4SE scripts. Since you undoubtedly have something referencing those type of scripts (which is no unexpected) the CK thinks you made them since they're loose. The only solution is to (temporarily) move them out of the scripts folder then try again.
×
×
  • Create New...