Jump to content

DieFeM

Premium Member
  • Posts

    848
  • Joined

  • Last visited

Everything posted by DieFeM

  1. I'd suggest to test it in a new game instead of a saved game. The actors in the CK are "base actors", a kind of "template", when you place it in the world it becomes a "reference" of this base actor, once the actor is a reference it has its own inventory, and its content is unrelated to the base actor. There are a couple of ways to add things to the inventory of a reference, by a script or a quest alias, and you can only remove things from it using a script or, obviously, in game, trading. Therefore, having this in to account, loading from a new game it will create a new reference from your modded base actor.
  2. When you place a teleport door, you need to finalize the navmesh, otherwise the navmesh triangle under the teleport marker will not show yellow, therefore the npc pathing through such door doesn't work, so my guess is that you can't.
  3. The wiki at https://wiki.bethesda.net/, but its down for maintenance. Fortunately for us there's a clone https://falloutck.uesp.net/wiki/ObjectReference_Script Check each object page for a list of functions and events, by hierarchy they inherit, so for example an Actor script will be able to use ObjectReference functions and events. There you have a list of objects: https://falloutck.uesp.net/wiki/Category:Script_Objects
  4. You need to attach the script to each terminal, the script attached to the parent terminal will not affect to the submenu terminal. So that it would need some way to share the instance ID of the sound in order to stop the sound from other menus (terminals). Id go with a global property. The same script would be attached to all of the terminals in the menu, they would use the same global to store the sound instance ID (but they can use different sounds in their properties), so that when you run a menu item it will stop the sound instance no matter what terminal started it. Scriptname SancHawthorneTerminalScript extends Terminal Struct MenuItemSound Int MenuID {The ID of the menu item (second column)} Sound Sfx {The the sound to play on this menu item} EndStruct ;Property Array, needs to be filled in CK MenuItemSound[] Property MIS Auto {Stores relationship between menu items and sounds} GlobalVariable Property LastSoundInstance Auto {Fill with the same GlobalVariable in all related terminals} Event OnMenuItemRun(int auiMenuItemID, ObjectReference akTerminalRef) ; Lets try to stop the previous sound (if any) If LastSoundInstance.GetValueInt() > 0 Sound.StopInstance(LastSoundInstance.GetValueInt()) ; The instance doesn't exist anymore, let's clear the value LastSoundInstance.SetValueInt(0) EndIf ; Find the sound struct for the current menu item Int i = MIS.FindStruct("MenuID", auiMenuItemID) ;Check if it found a valid item in the array (I'm testing with no sounds in submenus) If i >= 0 ; play the sound and store the current sound instance so it can be stopped when entering another menu item. LastSoundInstance.SetValueInt(MIS[i].Sfx.Play(akTerminalRef)) EndIf EndEvent terminaltestsounds_global.zip
  5. There you have my approach, using the terminal script instead of fragments, though: Scriptname SancHawthorneTerminalScript extends Terminal Struct MenuItemSound Int MenuID {The ID of the menu item (second column)} Sound Sfx {The the sound to play on this menu item} EndStruct ;Property Array, needs to be filled in CK MenuItemSound[] Property MIS Auto ;Global Script Variable Int LastSoundInstance = 0 Event OnMenuItemRun(int auiMenuItemID, ObjectReference akTerminalRef) ; Lets try to stop the previous sound (if any) If LastSoundInstance > 0 Sound.StopInstance(LastSoundInstance) ; The instance doesn't exist anymore, let's clear the value LastSoundInstance = 0 EndIf ; Find the sound struct for the current menu item Int i = MIS.FindStruct("MenuID", auiMenuItemID) ; play the sound and store the current sound instance so it can be stopped when entering another menu item. LastSoundInstance = MIS[i].Sfx.Play(akTerminalRef) EndEvent terminaltestsounds.zip
  6. GOAT! Just an off-topic note if you don't mind... it amazes me how some modders get to put together that kind of information, probably just by deducing it on a trial and error. Or is it documented anywhere? I don't think so.
  7. Yes, I understand that, and using the AllowPlayerVoice keyword is the option you're looking for, but mods using XDI merge the keywords in to their mods to avoid having to add XDI.esm as master of their mod, therefore those mods need a configuration file in which is set the form id of the respective keyword. I've only seen this setup in Fallout 4 - Point Lookout, and I'm not sure how it works for the AllowPlayerVoice since Fallout 4 - Point Lookout doesn't makes use of player voice. You see the contents: [XDI] Plugin=CWPointLookoutFO4.esm ActivationKeyword=1EAEB ResultGlobal=1EAEC I can't find any documentation so, if that's your case, you'll need to ask to the author of XDI (registrator2000) about it.
  8. That's odd... The only thing I can think of is that xdi keywords are merged in to the mod that you're editing, and it makes use of a ini file in which only XDI keyword is configured. That'd be a very specific problem, but it could be the case. So, to find out, the XDI keywords that you are using in the dialogue, their form ids belong to xdi.esm or to the mod from which you are editing the dialogue? Because the later option uses a text file to let Extended dialogue interface know what form id is used for XDI keyword in the mod, and the form id for XDI_AllowPlayerVoice might be missing from this file.
  9. Did you generated lip before creating a fuz from the wav file? In case you don't have it, there you have a nice software to convert between formats: https://www.nexusmods.com/fallout4/mods/9322/ Generating lip files can only be done from the 32 bit version of the Creation Kit, which can not load the current version of the ESMs, unless it is patched: https://www.nexusmods.com/fallout4/mods/42397/ You can generate lip files line by line using the 32bit CK, but is faster if you create them by launching the 32bit CK with parameters to generate lip files. The command to generate lip files looks like this: CreationKit32.exe -GenerateLIPS:YourMod.esp Obviously replacing YourMod.esp.
  10. There's another XDI keyword that allows the player talking, XDI_AllowPlayerVoice, just replace it. With this keyword you should get all XDI choices but allow player voice and camera.
  11. Well... I guess it depends on how you made it silent, for example there's XDI (extended dialogue interface) which can make the player silent by adding a keyword to the dialogue, just remove it, if that's the case. If that doesn't help, the only thing I can tell you is to check the camera settings on each dialogue phase, you can see the available camera settings by double clicking on the title of the action, where it says Action # (# meaning whatever number for such action).
  12. By default the camera does that, but I've noticed that you need to generate wav and lip files in order to show the proper camera angles. But there's a mod to trick the game, that let you skip dialogue and test cameras without generating wav or lip files: F4z Ro D-oh - Silent Voice
  13. The commented conditional is comparing a number against a base object, that doesn't work, you need to compare two objects of the same type. In first place you would need to find out the ObjectReference for each of the spawned crows in order to check if they are "alive", you can't use IsDead() on a non-actor, so you would need to check its destruction stage. You can get an array of crows references at a certain radius distance with FindAllReferencesOfType, then use a loop to check how many of them are alive by their destruction stage with GetCurrentDestructionStage. Once you count the "alive" crows you can then check if that number is higher than 0.
  14. In your custom race, in the general tab, at the bottom right, there's a box titled "Copied Data". In the dropdown menu for "Armor Race" select the race from which you want to use the armor.
  15. Probably because of precombined meshes, try disabling them in the settings, if it shows your changes after it then you'll need to generate precombined meshes. [General] bUseCombinedObjects=0
  16. Use "Grenade cycle function" with "Configurable Hotkeys", you just need to create a file named HotkeyBatch.txt in the game folder ("Fallout 4" folder as is described in Batch File Execution Hotkeys) that contains the following command: cqf GT_GrenadeCycle GrenadeCycle That's it. The command stands for : cqf (call quest function) GT_GrenadeCycle (the name of the quest) GrenadeCycle (the function that performs the grenade cycling in the script of the given quest).
  17. I'll wait and see, I guess, because they are still migrating, the sub topics are still pending to be created. I hope they don't mix everything in a single topic.
  18. Now you need to edit the INNR (which judging by the screenshots you created one named dn_PowerArmor_C1X02) in the ruleset number 1, right click and add new, set index 10000 (like the sibling ones), set the name of your paint in the text field, and add the dn_ keyword of your Object Mod. Now you need to do a choice, either you edit all vanilla armor pieces to which your paint applies, and replace dn_PowerArmor with dn_PowerArmor_C1X02 as their Instance Naming, or you edit the original Instance Naming (dn_PowerArmor). There's no way to avoid editing vanilla records as far as I know.
  19. The Object Mods add a keyword, which prefix is dn_, this keyword is used in the Instance Naming Rules that you defined in the armor piece, for power armor is dn_PowerArmor, there is defined how the game will modify your armor part name depending on what keywords are adding its Object Mods.
  20. Are you sure it happens with all weapons, or is just this one? because it could be a bug in the weapon animation.
  21. There's another GetAmmo function in InstanceData Script. You can call it on the actor equipping it, or on the weapon itself. Maybe that makes a difference. PS: Take a look at the source code in InstanceData.psc, there are useful comments.
  22. The pex would be enough, but you can pack the psc just in case, if you loose your local copy you still have the one packed in the ba2, because if you need to edit the script you'll need it.
  23. That happened to me once, because I removed the tool chest from the garage (001A62DE), it is a reference used by Dogmeat's quest, without that reference the quest can not start.
  24. As far as I know there's none of those functions available for papyrus, but PickNextRef, PickLastRef and PickNextActor are available in the console tho, you can try using Console Utils if any of those serve your purpose. Also there are many find functions available for papyrus, maybe you could use one them for your purpose. https://www.creationkit.com/fallout4/index.php?title=FindAllReferencesWithKeyword_-_ObjectReference
×
×
  • Create New...