Jump to content

Carreau

Members
  • Posts

    161
  • Joined

  • Last visited

Everything posted by Carreau

  1. My workflow for doing a patch in the CK is this: -make copy of mod ESP to patch -open copy in xEdit: change header flag to ESM -close xEdit -rename copy to ModName.esm -CK now recognizes and loads the mod as master -make patch. Save and close -open patch in xEdit -change dependency in patch header from ModName.esm to ModName.esp This method has been working for me for about a year now.
  2. Depending in how youâre mod is stuctured, the script call is simply AttachAshPile(form akAshPikeBase == none). If this is a specific actor, force them into an alias and attach a script thatâs watching for the OnDeath() or OnDying() events. If you donât pass a base activator for the ash pile, the game will automatically use the one meant for laser weapons.
  3. Just to put this to rest. It is incompatible. I can confirm, now that the files are unlocked. The FO4 CK doesn't even error when you try to load it, it just acts like it never loaded a file. BAE does work on the archives, as expected. The new Main file is now MiscClient. I haven't looked in the INI files yet to see if we can do things like enabling loose files yet for texture/model replacers.
  4. Multiple reasons this wonât work currently 1 - SeventySix.esm is likely incompatible due to significant changes between fallout4.exe and whatever the executable will be named in FO76. Default Objects between SeventySix.esm and Fallout4.esm are very much likely to be completely different as would any hardcoded ActorValues. 2 - all of the files are currently encrypted. You canât even open the INI files. Theyâre housed in tmp folders waiting for the signal to unlock and install later today. I tried popping the BA2 archives into BAE, and they fail to open In due time, weâll have XEdit to hopefully work. But my guess at this point is that the client has a fraction of the needed file structure. The server will have the rest. Weâre running glorified render setups while the cell shuffling and value tracking is handled server side. So even if we do have XEdit, we can only do so much.
  5. Iâve deleted them in the past with no repercussions. Iâve mad entire leveled lists for a new enemy faction and iâve never had a user complain about the models or textures being screwed up.
  6. So no replies. But I figured I'd share my solution. It could be a workaround, but it's consistent with Bethesda's approach. I created two compound descriptors for each category. One for the player and one for NPCs. The player compound points to two standard descriptors. One for male, one for female, and the gender checks work against Subject. In script, I'm doing a check for the player and calling the player compound. Or else call the NPC compound If(akActor == Game.GetPlayer()) akActor.PlayAndWait(PlayerSoundDescriptor) Else akActor.PlayAndWait(NPCSoundDescriptor) EndIf Hope this helps others in the future.
  7. So, I'm looking at adding some compound sound descriptors where in one instance, the player would play a particular sound file when the descriptor is called, and NPCs would play a different. Eventually, this will be expanded to have male and female player sounds and male and female NPC sounds. Current conditions for the player based sound check the subject for GetIsID Actor: Player == 1 AND GetSex Female == 1 (currently testing on female player) Current conditions for the NPC based sound check the subject for GetIsID Actor: Player != 1 OR GetSex Male == 1 (currently catching all NPCs and male players for this test) Both sound descriptors are placed inside a compound sound descriptor (we'll call it pSoundDescriptor) In script, I'm calling akActor.PlayAndWait(pSoundDescriptor) However, in practice, NPCs are saying the player based sound right now, which is not the behavior I want. My hope was that using Play() or PlayAndWait() would act a lot like SayCustom() where the actor being passed to it was treated as the subject. Looking at vanilla sound descriptors, though. This may be intended behavior as NPC and Player oriented sounds are (so far in my review) never called by the same compound descriptor, and are usually labeled appropriately. But subject oriented gender checks do seem to work, so I don't know what to do. I may just be boned and have to double up male/female player sounds and male/female NPC sounds. tl;dr sound descriptors aren't checking GetIsID, what do I do to make a compound play both NPC or player sounds? Thanks in advance!
  8. I misunderstood about the cabinets. Objects have a centerpoint, and that needs to be within the roombound for it to draw. So, if you pull up the scol in the view panel, the center is represented by the point where all the movement arrows converge. Power armor centers should be at their feet. So itâs probable that when itâs transitioning between race and furniture, the center is going out of the roomboundâs floor pane
  9. Make your roombound cover both levels. Itâs not that big if a performance hit to have both levels loaded. Most vanilla interiors roombound large sections instead of trying to segment individual spaces. As for that second part, use a light box on the light thatâs throwing that shadow.
  10. That's one of the reasons I was suggesting going with a struct array. It's essentially the same as using a ref collection for this purpose and you can ensure that the indexing always matches up since the vendor and the container ref would be input into the same index of the array. If it were me, I'd rather juggle one annoying list than two.
  11. So, looking at the use of the VendorContainerKeyword, it's linked to a bunch of vendors, but not all vendors. It looks to be only vendors that can exist in a settlement, so you won't have vendors such as Takahashi or CLEO. Plus, you'd still be left with how do you get a link between the actor ref and the container ref. The link between actor and container is buried inside the faction, but F4SE hasn't cracked that set of scripts open, so it hasn't been exposed yet. Polling a couple of ref lists isn't going to work either because you'd still need to go and find each in world reference and add it to the ref collection, and then still handle the dynamic settler containers as well. It would almost be easier to set up a struct with data members of actor and objectreference, and either shove that in an array. Then you could populate the known vendors in the script properties tab with the actor and the in world ORef, and for dynamic settlers, populate new ones as they crop up. During the OnDeath() event, scroll the array, find the matching actor, and move all items. Scriptname MoveThatIsh extends AliasReference ;Attach this to an alias on the player Struct ContainerLink Actor Vendor ObjectReference VendorChest EndStruct ContainerLink[] ContainerArray ;This would get populated in the CK Event OnKill(Actor akVictim) int i = 0 While(i<ContainerArray.length) If(akVictim == ContainerArray[i].Vendor) ContainerArray[i].VendorChest.RemoveAllItems(Vendor) EndIf i += 1 EndWhile EndEvent ;add some method to figure out when to add more vendors to the array at run time. Edit: Added some code to show what I'm suggesting. It's mostly front work when adding all the stuff to the array. But, create a ref alias for the player, stick a script on it, and let it roll.
  12. According Xedit, Iâm getting this: Nuka world 0200290F No offset NW cell x/y -18/17 SE cell x/y 16/-18 The island 01000B0F No offset NW cell x/y -16/17 SE cell x/y 19/-18 Double checled and validated with the CK
  13. The CK for some reason will try to pack in the pex files for Actor, ScriptObject, and a few others. I think it has something to do with F4SE. The CK sees the scripts are different and tries to pack them. I'll use a ton of vanilla scripts like CompanionActorScript, a bunch of default alias/ref scripts, and the CK never tries to pack those. My rule of thumb is to never pack in a vanilla script. Unless the point of the mod is to make changes to a vanilla script.
  14. I brought this question up a while ago as I had a bunch of leveled actors in a mod I was creating generate face data as well. If you look at the dds files that are generated, theyâre blank alpha textures. So, as a test, i packed an archive without tge dds or nif files and sent it along to a tester). There were no issues on their end. What tipped me off to not needing them was the fact a companion I had made never generated the facegen files.
  15. Is it normal for using EnableMovement(false) to disable the HUD? This occurs regardless if I use EnableMovement() or DisablePlayerControls(). I can narrow it down to specifically disabling movement since it occurs when I use EnableMovement() TIA
  16. Thatâs odd. Iâm gonna look into why that would be the case. But Iâm glad you got it figured out!
  17. Use OnItemEquipped(). Food and potions are equipped when they're used. If you want a good example of the game detecting food, look in script\base\hardcore\HC_ManagerScript.psc In the HC script, the game detects when you equip the item, and runs a bunch of checks to make sure it's food and then calls the functions to do the magic of modifying the sustenance pool. What I would do is register for OnItemEquipped(), run a similar check for keywords (the script uses a keyword array that's filled in the quest property, so you might want to check the HC_Manager quest to see what the Beth devs used), and then do what magic you want to happen. The HC script populates a form with the different food as kind of a temporary holding array so the processing function can run uninterrupted. So AddFoodItem() adds to that form, and the while loop inside ProcessFoodItems() will continue on until the form is empty and run each food item separately through ProcessSingleFoodItem(). That's also why ProcessFoodItems() has a bail out check; there's no reason to run it multiple times.
  18. Thereâs a hierarchy to how the load screens work. The game stacks all of the ones with conditions and checks them. If a condition passes, itâs shown. Then it runs the ones without conditions next and randomly chooses. This is how the story missions can have a load screen show as they have conditions based on main quest stages. I donât know the priority of how the load screens are stacked to check their conditions, but so long as their condition fields are empty they should be shunted to the random pool.
  19. The error is because you named the property with a number first. Canât do that. Rename it to Gun10mm or something. https://www.creationkit.com/fallout4/index.php?title=Identifier_Reference Is rexsitemmarker an actual node on the 3d model or an x-marker placed into the world? Because of itâs the latter, this is the wrong function. The way you described what you are doing sounds like you want to spawn a 10mm in the game world. Placeatnode would be if you wanted to spawn the gun directly on a 3d model in game.
  20. Vanilla uses counters as well. All of the caravans are on loops. A script on the package advances a counter and changes a flag state based either on reaching the destination or a timer firing. These play into the package conditions that are on each caravanâs ai stack. I think since youâre just wanting to check state based on the stage, use a global as a flag or just have it set bybscript fragment on that stage equal to the stage (so you can trend multiple stages) and check the value of the global in your condition.
  21. I thought any location could be set as the default location through companionactorscript attached to the companion. Otherwise, Nick wouldn't be able to default to his office or Piper to public occurrence. Edit: iâm going off memory as I donât have my laptop with me to verify the exact attached script where you set default locations for companions
  22. I looked at a bunch of free programs to make edits to the hud and make my own widgets, however, I ended up going with adobe animate. The new CC service gives a decent trial (i think it was a month), and the monthly cost is manageable if you want to continue using it. I just found it was easier to use a single IDE than trying to make a bunch of free tools gel with each other. I used Jpex to open swfs and peek around inside, but I use animate to make stuff.
  23. If your first question is with regards to the command wheel for companions, it's hard coded. SetPlayerTeammate() flags actors to use the command wheel. As far as I can tell, you won't find a quest with a dialogue scene that has the command options you see when you first talk to your recruited companion. https://forums.nexusmods.com/index.php?/topic/4697325-setplayerteammate-follow-dialogue-quest-scene-comes-from/ This thread has some good information regarding it. For the second question, normally you'll play the dismissal scene in COMxxxTalk because your companion is usually recruited. The dismissal scene in COMxxx is used for when the game needs to dismiss the currently recruited companion, like when you have to choose between two companions. That scene is pointed to by CompanionActorScript attached to the actor base.
  24. When you add the radio action to the scene, thereâs a field for selecting the sound. As for playing the sound as the player gets within range, thatâs set by the transmit marker you place in world. The frequency and min/max ranges are set directly to the marker reference. The scene for the radio sounds will need to loop. If you look at any radio scene in the game, thereâs an additional action to loop back to the beginning of the scene. It plays ad naseum. The pulsers turn off the transmitter when itâs picked up, and thatâs handled by a script on the pulserâs quest alias. If youâre wanting to play the beep that varies in speed like the BoS pulsers, I highly recommend you look at BosM01 and the main quest Hunter/Hunted. Huner/Hunted is a good example of how to handle just a transmitter that will always be stationary. Each scene will look like a mess as there are 20+ phases. But each phase has start conditions based on distance of the player to the transmitter. It cycles through all phases looking to see what range you are to the transmitter. If it finds youâre in the range of one phase, it plays the sound and loops back. If youâre out of range, nothing plays and it loops back.
  25. If you look at the quest RelayTowerQuest, it lays out how the vanilla towers were set up. You'll be dropping an activator called RadioTransmitMarker somewhere in the game word. That's the source of your signal. The quest handles what you audibly hear on the pipboy. You'll create a quest, and then a quest alias. Next to the alias name field is a drop down box called Display Name. This allows you to choose a message that will be your display name. In the scene tab, you'll need to create a scene that plays your message. The quest alias you set for your transmitter is the alias you use when you start the scene dialogue. The action you add is a Radio Action to each scene. In the distress pulser quests for the BoS, Bethesda checks the player distance to the pulser to change the speed of the pulser sound as you get closer/further. You mentioned that the signal would get clearer as you get closer, so I would look into how the distance checks work on the BoS pulser quests (it's BoSM01 is the quest ID for the pulser handler). Lastly, the vanilla relay towers have a quest script attached called RelayTowerQuestScript that starts the scenes that play what you hear over the radio. It resets the scenes every 30 minutes. You can use that, or write your own if you don't want the relay towers to reset.
×
×
  • Create New...