Jump to content

spacefiddle

Premium Member
  • Posts

    91
  • Joined

  • Last visited

Everything posted by spacefiddle

  1. Has anyone encountered an issue where multiple rapid shots with a plasma rifle don't seem to all do damage when they connect? I don't mean reduced or mitigated, I mean zero effect on health bar. Using a semi-auto with the short improved barrel, if I fire rapid shots at something I can see the first impact, and health bar move X amount - but one or more of the later shots seem to impact but cause no damage. This is whether sighted or hip-firing. I'm not sure if there's a bug, a rare bug uncovered by a mod, or a mod itself. Figured I'd see if there was a known issue before I start taking mods apart. Thanks! (My current theory is that the impact effect is blocking successive shots - like, shot 2 and 3 are hitting the "splash" impact from shot 1, and not the target.... -_- )
  2. Halloo. Thread necro time! I went looking for something like this, too, and found y'all here. MAH PEOPLE. I may be able to kludge something together for this. I am not bad at creating the effects I want. I am terrible at making them look cool. I am an engineer, not an artist. You are warned :] For the record: this is probably better known by now but yes, you need someone assigned to a crop to have it produce harvestable food. This is ironic in that if you didn't have these random strangers you tricked invited in to work your farm, you'd have less mouths to feed.... Automatron robots are, once created, little different from any other settler. If you have the DLC, you can poop robots to work your farms. You may not be taking your character in a direction that supports this, even if you have the DLC; and it is resource-intensive to create robots early, and you can't even get them until at least level 15. So it's not ideal. A single settler - human or robot - can work 6 food-units' worth of farm. Not six plants! So six Mutfruit (they're 1 food each), or 12 corn (which are 0.5 food each), or any combo. That out of the way - the settlement system is very complicated and is always doing stuff quietly in the background. The simplest way I could think of to insert something into this system, without altering / breaking it, would be an "invisible settler" that the game considers as assigned to food production. It's an eye-roller to me that the SS runs around the commonwealth solving every problem every random jerk has, from the most mundane to the most complex, but can't seem to water a plant to save his life. Literally. I'm guessing most of us solo-survival players have a couple of strongholds stashed here and there, with workbenches and supplies and ammo caches? I'm picturing a couple of plants there - corn 'tatos and mut, of course, gotta brew up that adhesive - where you have to regularly "tend" the plants, and provide resources, in order for the game to consider them being worked. So, if you're not back in two weeks, no yield; but if you stop in now and then, they grow normally. Side note - I have a mod that changes the workbench crafting requirements to be the actual friggin' craft, not "I am a beloved politician and therefore I can build a table to hammer s#*! on." I think it'd go well with this. Ramble off, let me know if you're interested in testing such a thing when (or if...) I get it working.
  3. I'm sorry to say that's just how PA works now, in Survival or otherwise. I think vanilla survival (unmodded) boosts both your damage output, and NPCs damage output; this makes the terrible state of PA even more obvious. You'll note that you have, like, 1000 points of rad resist - but still take rads even in slightly radiated areas. You have a thousand points of ballistic resistance - but some idiot with a .38 can still damage you (while the armor pieces hardly take damage at all). The formula for how damage is applied, how damage resistance works, Armor Piercing, other effects etc. is insane. I have no idea what the goal was behind it. One sec while I dig up a link... http://fallout.wikia.com/wiki/Damage_Resistance I hope you like Calculus. So if you're walking around in combat armor, upgraded, running a total of 100 DR or so, you take 19 damage from a 50 point rifle shot. If you are in Power Armor and take the same shot, you take 8 points of damage..... per shot. The net effect is that bullet sponges still rule the day, and a large health buffer will be more effective at slowing the rate your health bar melts away than adding like, 50 points of DR. 100 would be pretty good normal armor, right? 19 damage from that 50 point shot. Somehow boosting it to 250, let's say from good Ballistic Weave which is only gotten from the Railroad, would get you 14 damage per shot - for the questline, and faction, and significant material cost, you're reducing damage by 5 points per shot. Now combine this will multiple enemies shooting at you, or much larger hits from Sentries or explosives, or overwhelming the target with automatic weapons fire. This is why you can be in PA and watch the health needle swing faster than a politician's ethics. Fortunately, there are a ton of mods that change all sorts of things about PA. They take many different approaches and provide different effects, so your best bet is to browse around the Nexus and read up on what each one does, they're going to be very subjective. HTH!
  4. FYI, if you're curious: unfortunately it seems that this bug is affecting ALL power armor workstations, at any settlement. They see some components as they should; they see others not at all; and weirdly, I think once or twice they saw some but not all. Edit: nope, still don't have it. Editing top post so anyone finding it gets current status.
  5. Enumerating a list of "don't load these before exit" mods would be infinite and ever-growing, and impossible to maintain. As a general rule, anything that adds stuff to your inventory needs to be avoided, as you do not have one before putting on the Pip-Boy. Like folks above have said: it's better to do it the other way. Don't load any mods before exit unless it specifically says in the docs or description that it's safe to do so. If a mod is "aware" of the beginning, some can delay adding stuff to your inv until you get the Pip-Boy (True Storms does this with its settings and control holotapes); others start their quest by having their object out in the world, like the Journal of the Sole Survivor mod which has its tape in Sanctuary. Just assume nothing is safe unless it clearly states that it is ;).
  6. Interesting. It's likely that in your case, while the buildable area has been expanded, the game is using the markers from the original boundaries to look for workshop-owned items. Naturally, not all settlements are consistent in how their borders are defined. That'd be too easy, right? I remember finding that stuff while working on something else. The expander you're using could probably be updated to eliminate that issue. It's not the distance, per se: it's a binary "in the area" or "out of the defined area." I don't have any added or expanded settlement mods, but I have heard other reports of weirdness about Oberland. Figures, as I've made it my current HQ. In other playthroughs, I've built there in similar locations as the current work area with no issue. Never had an issue sending people there, either. I'm wondering if more recent content / DLC from Bethesda introduced new issues there. Sadly, I am doing a low-Cha run without local leader, so I can't test provisioners. Of course. I have a routine that traverses linked settlements to find their connected containers; it can also list the contents of the current container. The mod doesn't alter anything, just reads values. It's able to get the Oberland container without issue. I think for this issue, it's going to be something arcane that's not occurred before. I'll have to do some digging, looks like. As for your expanded borders mod, tho, see if the author is aware of the multiple ways Workshop areas are defined. Some use the defined build area, but others seem to go "use the center-of-area marker and go X distance from it." If Oberland uses the latter, that would explain why it doesn't see anything outside the original borders, even if they're marked as buildable.
  7. Built myself, Oberland station, and it works if I have either the components or junk in the character's inventory. From what I've seen so far: On every other workbench, behaves exactly as expectedOn constructed PA workbench, works normally for all components it seesFor components PA isn't seeing from Workshop cloud storage, it works if I'm carrying themPA station sees most components from crafting view. It sees zero Adhesive, most notably, in storage.I can access R the container from the PA station, and behaves as expectedI can remove Adhesive from the PA R menu, and put it right back in. Still doesn't see it in craft mode.R container menu from PA station sees everything in the cloud storage, looks exactly the same as R menu from all other stations there.I'm not sure how it would hate Adhesive, specifically. And it's from multiple sources - the raw c_component_scrap, duct tape, veggie paste, the whole 9 yards. Inventory, can craft. Storage, it sees zero. Completely stumped.
  8. Hi folks! Didn't realize there was a forum for mod announcements, harhar. I have two completed mods: Companion Stealth Distance Fix (No Free Hugs) For some bizarre unknown reason, the default AI sets a distance of "stand on the player's head" when you crouch. No matter what other mods or controls you might be using to set distance, or just plain vanilla Medium default - it all goes out the window when you sneak. This is why you get Preston's big ol' hat in your crosshairs when sniping. They can never get close enough to match the setting of "proctologist," so they never stop moving. This fixes that by removing the sneak override. It also spaces them back a bit further. Whatever distance you have them maintaining - vanilla or modded - they will keep it that way when you crouch. No more charging up and blowing your cover, or catching your bullets with their ears, when trying to snipe. You can actually sneak effectively with most companions now. Not Danse. Home Despot - Workshop container component inventory This is a crafted terminal you place in any workshop settlement (same cost as vanilla terminal). It shows the component value totals - not junk, but the actual Aluminum, Steel, Copper etc - of all the stuff in that settlement's workbench. It can also show the totals available via all provisioner-linked settlements. Got real tired of going into Workshop mode just to try find stuff I was short on. Future plans for this one is to get the Tagging interface, like when you have stuff in you inventory, to use this inventory.
  9. Update: current status is, PA workbenches, built anywhere, don't see all componentsWon't let you build something if it thinks you don't have components, shows as grey / 0 componentsTested this with both junk and the raw scrap broken downFor example: doesn't see Adhesive or Aluminum. Can't build anything, these show grey in build menu as if i had noneIf i take the components OUT of the workshop storage, and have them in inv, I can build normallyI have no idea what's going onsrsly halpI've looked at the various mods that alter PA, but I don't see anything obvious. I'm mystified as to how it can see the workshop container, but not every component inside it? It's definitely not seeing in either Junk or Scrap form.It gets weirder: I have a total of 13 Nuclear Material in this workshop's storage, in various junk items. No raw scrap, all in junk. The PA station sees 6. how the f Does anyone know where to start looking at the build menu for Power Armor workbenches...? All other workshop crafting benches are working normally. Load order (may not be current as I'm changing stuff while I troubleshoot):
  10. I have no idea how to begin doing this, as I've never tried texturing anything, and I wouldn't want to make a crappy attempt on this of all things: https://www.reddit.com/r/FalloutMods/comments/4yv7i0/fo4_my_friends_cat_just_died_is_anyone/ The subreddit seems to get very little traffic, and half of it is people asking for random mods, so I think fewer people have seen it then he realizes. He's hoping it can be a combat companion, but I don't think he understands how much that would entail as far as new mesh and animation. I could probably figure out - eventually - how to make one of the existing cats perma-follow him, but I've no idea where to begin taking his photos and making them into Gamecat.
  11. At the bottom of that Calculus exam.... "Due to the way the damage formula works, the 40% armor piercing of some weapons mods actually result in a flat +20% effective damage done, on any foe, regardless of the weapon base damage or the DR of the target." ... WHY
  12. ha HAH! Never mind, thought of a workaround. The wait utility is working, but getting truncated. It's extremely consistent: delays under 6 seconds behave as expected, anything long is not honored. The internal timeout mentioned on the wiki for fragment processing seems to be about 6 seconds. Per fragment. Per menu item. So, I have the whole process kick off from the first menu item's fragment, with a delay of 5 seconds - which leads to a submenu. Text display of the submenu does some "Reticulating Splines..."-type silliness, leading to a single menu item of "Get Results." There is no function or fragment here except another delay of 5 seconds, which response covers with "Formatting output" or something. Finally, that item leads to the real text display with replacement; and the loop's had time to complete while we were reading the distract- uh, text output, and navigating the menu. All told, it's just two clicks to hit "Linked Inventory" and then "Get Results," and the delay doesn't feel too horrible. If there's another way to process the above, traversing the linked workshops, I'd love to hear it; but if not, this consistently has time to finish no matter how fast I spam the buttons. The minimum 10 second delay enforced by Wait will in reality always be a couple seconds more, as the player takes action (even really quick action). I hope to do a couple more sanity checks on the thing and get it up on the Nexus tonight, if all goes well. Thanks for offering anyway. Edit: oh yeah. If ANYONE knows a trick to add leading zeroes or otherwise control the text output better (so I can line everything up as nice as it is in my screenshot), I'd love to hear it.
  13. Technically, it's considered good form to post or edit in what the issue was and how you solved it, so the next person who sees your topic and clicks it hoping to find the answer doesn't bang their head against the keyboard ;).
  14. Alright, ladies and gents: welcome to The Home Despot. Get a Grip on Your Junk! This is working, actually, except for the race condition. If I choose the local inventory, it's instant and fine. When I choose Linked Inventory (showing components available to build here with, by looking at component values - not junk items - across all provisioner-linked workshops to here), if i back out, give it a few seconds, and look again - the globals have had time to update. I've only spot-checked the component totals but they seem correct so far. And now, my sloppy monolith of a quest script: Scriptname HomeDespotQuestScript extends Quest Hidden {Quest script for Home Despot mod. Updates workshop inventories when accessed.} import debug import CommonArrayFunctions import WorkshopDataScript WorkshopParentScript Property WorkshopParent Auto const mandatory Group WorkshopData WorkshopScript[] Property Workshops Auto { Array of all workshops Index is the "workshopID" of that workshop } WorkshopScript[] Property PlayerOwnedList Auto { A list of player-owned settlements. } WorkshopScript Property OwnedSettlement Auto { Contains an owned settlement to be added to PlayerOwnedList. } ReferenceAlias Property CurrentWorkshop Auto { Where we are now, since this is based around a Workshop-constructed terminal } Location[] Property WorkshopLocations Auto { Fairly obvious } EndGroup Group DespotQuest_TerminalUpdates Quest property DespotQuest auto const mandatory { If we don't have this quest, what are we doing? } ReferenceAlias property HomeDespotTerminalConsole auto { The 3D console we're accessing } GlobalVariable property DespotTotalSettlements auto { Global where the total number of player-owned settlements is kept } GlobalVariable[] property Globals auto { The members are defined in the CK under script Properties, in the terminal itself } EndGroup Group Components Component[] property Components auto { Again, members defined in CK as above } Int Property AllComps = 0 auto { All components in the game. } Int[] property ComponentInv auto { Our bucket to keep a running total of components as we count } EndGroup Group Keywords ; These are to find the linked settlements Keyword Property WorkshopCaravanKeyword const auto mandatory Keyword Property WorkshopLinkContainer const auto mandatory EndGroup ; Set the stage to 20 so that the script knows that the plugin has been successfully loaded. CustomEvent SetupDone ; Attempt to make the damn thing wait until we are done counting ffs which failed ; CustomEvent InventoryDone HomeDespotQuestScript Function GetScript() Global Return Game.GetFormFromFile(0x00000F9A, "TEST_HomeDespot-spacefiddle.bak.3.esp") as HomeDespotQuestScript EndFunction Event OnStageSet(int stageID, int auiItemID) debug.trace(" HD> stage= " + stageID ) if stageID == 10 Initialize() ; register for event to mark initialization complete. RegisterForCustomEvent(self, "SetupDone") SendCustomEvent("SetupDone") elseif stageID == 20 ; Our ComponentInv[] sums wont work if everything is NONE. int currentElement = 0 while (currentElement < ComponentInv.Length) ComponentInv[currentElement] = 0 currentElement += 1 endWhile debug.trace( " HD> Stage 20 set - ComponentInv should be zeroed below ") debug.trace( " HD> " + ComponentInv ) endif endEvent Event HomeDespotQuestScript.SetupDone(HomeDespotQuestScript inputSender, Var[] inputArgs) debug.trace(" HD> SetupDone ") WorkshopLocations = new Location[Workshops.Length] int index = 0 while index < Workshops.Length WorkshopScript workshopRef = Workshops[index] as WorkshopScript workshopRef.InitWorkshopID(index) WorkshopLocations[index] = workshopRef.GetCurrentLocation() ;WorkshopLocations.Add(Workshops[index].GetCurrentLocation()) workshopRef.myLocation = WorkshopLocations[index] index += 1 endWhile debug.trace( " HD> " + WorkshopLocations ) setStage(20) ; Initialization is complete. EndEvent ; Initializes the plugin. function Initialize() debug.trace(" HD> Init() ") ; Populate Workshops with a list of settlements. SetWorkshops() PlayerOwnedList = new WorkshopScript[0] endFunction ; Populate Workshops. function SetWorkshops() debug.trace(" HD> SetWorkshops() ") Workshops = WorkshopParent.Workshops as WorkshopScript[] endFunction ; Find player-owned workshops. function CheckPlayerOwned() debug.trace(" HD> CheckPlayerOwned()" ) PlayerOwnedList.Clear() int index = 0 while (index < GetWorkshops().length) if PlayerOwnedSettlements(Workshops[index]) ProcessSettlement(Workshops[index]) endif index += 1 endWhile int numOwned = PlayerOwnedList.Length debug.trace(" HD> Found " + numowned + " owned. Setting global and text.") DespotTotalSettlements.SetValue(numOwned) DespotQuest.UpdateCurrentInstanceGlobal(DespotTotalSettlements) ObjectReference term term = (HomeDespotTerminalConsole as ReferenceAlias).getReference() debug.notification(" HD> quest term " + term ) term.AddTextReplacementData("DespotTotalSettlements", DespotTotalSettlements) endFunction bool function PlayerOwnedSettlements(WorkshopScript inputSettlement) ;debug.trace(" HD> PlayerOwnedSettlements ") if inputSettlement.OwnedByPlayer return true else return false endif endFunction function ProcessSettlement(WorkshopScript inputSettlement) RecordPlayerOwned(inputSettlement) endFunction function RecordPlayerOwned(WorkshopScript OwnedToRecord) OwnedSettlement = OwnedToRecord as Workshopscript PlayerOwnedList.Add(OwnedSettlement) OwnedSettlement = NONE endFunction WorkshopScript[] function GetWorkshops() debug.trace(" HD> GetWorkshops ") if Workshops.length <= 0 SetWorkshops() endif return Workshops endFunction ; poorly-named function i lifted from Parent that I should make more distinct from the above WorkshopScript function GetWorkshop(int workshopID) return Workshops[workshopID] endFunction ; Terminal menu item: Local inventory. This workshop container only. Function LocalInventory() debug.trace( " HD> LocalInventory called " ) AllComps = Components.Length Int i = 0 While i < AllComps ComponentInv[i] = CurrentWorkshop.GetReference().GetComponentCount( Components[i] ) debug.trace( " HD> Local Count " + Components[i] + " is " + ComponentInv[i] ) UpdateGlobals(Globals[i], ComponentInv[i]) i += 1 EndWhile SetStage(40) ;SendCustomEvent("InventoryDone") EndFunction ; The bigun - using Caravan keyword to "traverse" all workshops linked to this one, and add each one ; inventory to the array of ComponentInv[] as a running total. Function LinkedInventory() debug.trace( " HD> LinkedInventory called " ) location here = CurrentWorkshop.GetReference().GetCurrentLocation() debug.trace( " HD> Here is " + here ) WorkshopScript this = CurrentWorkshop.GetReference() as WorkshopScript Location[] linkedLocations = this.myLocation.GetAllLinkedLocations(WorkshopCaravanKeyword) debug.trace( " HD> LinkedLocs are " + linkedLocations ) AllComps = Components.Length int index = 0 while (index < linkedLocations.Length) ; get linked workshop from location int linkedWorkshopID = WorkshopLocations.Find(linkedLocations[index]) if linkedWorkshopID > 0 ; get the linked workshop container WorkshopScript linkedWorkshop = GetWorkshop(linkedWorkshopID) debug.trace( " > " + linkedWorkshopID + " is " + linkedWorkshop ) ObjectReference linkedContainer = linkedWorkshop.GetContainer() if linkedContainer Int i = 0 While i < AllComps ComponentInv[i] += linkedContainer.GetComponentCount( Components[i] ) debug.trace( " HD> " + Components[i] + " totals " + ComponentInv[i] ) i += 1 EndWhile else debug.trace(" HD> Nothing linked! " ) endif endif index += 1 endwhile int g = 0 while g < Globals.Length ; UpdateGlobals follows this, and also does text replacement UpdateGlobals(Globals[g], ComponentInv[g]) debug.trace( " HD> Global " + Globals[g] + " sending " + ComponentInv[g] ) g += 1 endWhile SetStage(50) ;SendCustomEvent("InventoryDone") EndFunction ; Once totals are present after looping through Linked, called from loop to update each global . text replacement Function UpdateGlobals(globalvariable globComponent, int numComponents) globalvariable globval = globComponent int total = numComponents debug.trace(" HD> Update Received " + total + " of " + globval ) globval.SetValue(total) DespotQuest.UpdateCurrentInstanceGlobal(globval) ObjectReference term term = (HomeDespotTerminalConsole as ReferenceAlias).getReference() term.AddTextReplacementData(globval, globval) debug.trace(" HD> Current globval is " + globval ) EndFunction ; Another attempt to avoid race condition: ; We call this in the fragment for Linked Inventory, but it was pretty much ignored Function DoNothing() debug.trace( " HD> DoNothing() called" ) Utility.WaitMenuMode(10) debug.trace( " HD> DoNothing() ended" ) EndFunction On a side note - is there ANY way to trick some leading zeroes into a Global variable? I've just surrendered to the notion that I'll never get the damn thing to line up correctly unless the totals happen to cause it. http://i.imgur.com/IOcf6Iul.png Edit - I've tried the utility.waitmenumode(10) call both from the fragment itself, right after the LinkedInventory function call, as well as calling the DoNothing() function that contains the wait. No dice. After 5-6 seconds the screen draws no matter what I do (and usually has all zeroes, since the running-total loop hasn't completed so the globals aren't updated yet). As an annoying side effect, if I've done Local first, it shows those values, so I guess I need to zero the globals at function start too -_-
  15. Thanks - I was using WaitMenuMode but it seems like it was not affecting the screen draw. I had it set for 10 seconds, and it was maybe 6 before the screen drew. Logs show when it's called and when it ends, and it was indeed 10 seconds apart. As for my code.... heh... thanks for the offer, I'm going to have to spend some time cleaning it up first :D
  16. Update: yeah, after I cleaned stuff up cluttering the logs, it's taking about 9 seconds to run my calculations. I remember some blurb about "will not advance until completes or an internal timeout is reached." I'm guessing I'm hitting that timeout. How can I disable or modify it?
  17. EDIT: bah, can't edit the title. Not exactly Solved, but Workarounded: A terminal menu item will not advance until its fragment is completed, so adding delays like Utility.WaitMenuMode(x) will give you some time before the text displays. This is useful when the display is using Text Replacement and you want to give the globals time to update.HOWEVER, no matter what delay you give, the menu item will advance after a timeout of ~ six seconds. This seems to be hardcoded; I can't find it in Game Settings in the CK or anywhere else. Therefore, if you have anything that takes longer, it gets caught half-dressed, as it were. Sooo, any "x" you set in the function there > 6 still only gets you 6 seconds.but HO! This timeout is just for that one menu item, that one fragment. So if you make the first option kick off your long-running process, and go the max wait, you will get to the submenu - where you can run another fragment / menu item, and another delay of up to 6 seconds. This works around the timeout by stacking them together. At the end of this chain, you can show your text replacement, knowing it will be filled.If you have to go to more than one submenu and get a delay of > 12 seconds, then I have no idea what you're calculating but please share; it must be gargantuan. --- Original post: --- Hopefully I'm just missing something arcane that isn't in the wiki yet. I've a terminal whose menu items are a text display with text replacement. After many trials and tests: Functions are working as expectedText replacement is occurring as expected - eventuallyI seem to be getting the correct calculated valuesThe issue is that the terminal shows the text *before* the function the fragment calls is completed, resulting in either a display full of zeroes, or partially-filled values. If i wait a bit, and select the same menu item again, it's finished finally and I get the full correct display of values. I have tried some of the following; in the fragment itself: RegisterForRemoteEvent(DespotQuest, "OnStageSet") where the quest script is setting a stage as the last line of the function. Nope, the menu item advances before it's done. Also RegisterForCustomEvent(DespotQuest, "InventoryDone") where I'm sending that event the same way - compiles, but doesn't seem to care. Thought the menu item wouldn't advance until these events were received; but no, I'm guessing it just says "Okay, I'm listening for that now, yep" and carries on. Is there any way to delay or pause the screen's display until the called function is done with its business? I can't seem to figure out OnMenuItemRun() either, since it extends Terminal, which the fragment window is inherently, while a script attached to a terminal extends object reference; so I've no idea where this function calls home and just gave up and put everything in the bloody quest. Which I'm accessing like this - full fragment example: HomeDespotQuestScript DespotQuest = Game.GetFormFromFile(0x00000F9A, "TEST_HomeDespot-spacefiddle.bak3.esp") as HomeDespotQuestScript DespotQuest.LocalInventory() RegisterForRemoteEvent(DespotQuest, "OnStageSet") RegisterForCustomEvent(DespotQuest, "InventoryDone") DespotQuest.SetStage(20) halp!
  18. I've tried various permutations of ObjectReference property localContainer autothen in a function, localContainer = GetLinkedRef(WorkshopParent.WorkshopLinkContainer) as ObjectReference debug.notification( "We look into " + localContainer)The function is in a terminal script. The properties of the script do seem to see localContainer as an ObjectReference. I think I might be doing several things wrong - all other parts of the function work, but the debug notification above never appears. It doesn't show NONE or 0 or anything - it just never appears at all! Code before and after those 2 lines are running, and the script complies. I'm not sure what to look at next. Edit: I've also seen in WorkshopParentScript, a number of calls like: ObjectReference containerRef = workshopRef.GetContainer()where workshopRef is being passed in at a function call; so maybe I'm just not getting the local workshop reference correctly? What's the most reliable way of referring to "the workshop I'm standing in?" It will be called from a workshop-CO placed in the world, so it will always be true that we're standing in one.
  19. I'm curious as to why he'd get an FPS drop after *removing* items. You mention how many parts and pieces are used in the random nonsense, but it seems like getting rid of them would speed up rendering, not slow it down, yes?
  20. I have this - Event OnActivate(ObjectReference akActionRef) ObjectReference term = (MyTerminal as ReferenceAlias).getReference() ObjectReference localContainer = GetLinkedRef(WorkshopParent.WorkshopLinkContainer) MyQuest.setStage(30) EndEventWhen the terminal is accessed, the stage does get set to 30. However with debug notifications on, localContainer is NONE. I'm doin' it wrong, but I'm not sure if I'm using the wrong function, or if it's in the wrong place. This Event is in the terminal script, and otherwise seems to function correctly. MyTerminal is declared a reference, it's in the associated Quest as an alias, and it fills correctly here and elsewhere; I seem to be detecting and getting the terminal 3d correctly, but I don't think I'm telling it to look for the local workshop's linked containers correctly. Any advice appreciated. I'd thought since the terminal is a co_, its parent would be the local workshop - no?
  21. Ahh gotcha. Okay, OOP is new to me and I wasn't considering the function in the context of what calls it, and what on. I knew you said it was working, so there had to be *something* I didn't get, but wasn't sure what. I noticed you also keep the ID of the workshop in its "original place," that is, if it's element 5 in the Workshops array then it will also be [5] in the Cleaned array. For what I'm doing, I need to be able to count the length of the array to get its non-null entries, so I'm using a dynamic array. As for the Workshops script vs. "Cleaned" at all - I think it's safest to leave the Workshops array as the comprehensive list of all workshops in the game and not edit it further, only referencing it. Like the recent DLC, if anything adds workshops to the game (whether Bethesda or a mod), the next time SetWorkshops is called, you'll get them all. Having one "this is definitely all the workshops the game sees right now" list pulled in seems valuable, while doing your tracking in another. True story - while working on my own mod, Vault-Tec downloaded and installed between test runs. I had NO IDEA wtf I did to set off some random quest about a radio beacon until I realized the DLC had just released.
  22. No, I think you're not seeing what I'm saying - It's set to 0 before you enter the loop, yes; it has to be. So, during *this call* of the function the loop is in, it increases until it finds the *first settlement* to clean - then it exits. The next time the function is called, it again resets the index to 0 before the while loop. So it will, again, go up the same list of elements, and reach the same result. See what I mean? So: is there something that makes this array "not the same every time we look at it?"
  23. Makes sense, but index is reset to 0 every time we get back here - so how is it checking anything other than Array[0]?
×
×
  • Create New...