Jump to content

niston

Premium Member
  • Posts

    1178
  • Joined

  • Last visited

Everything posted by niston

  1. There's no such thing in Papyrus, is there? Maybe some technique for "faking" it exists?
  2. Meh. I copied the quest from FO4 hotkeys into my esp. Removed everything scripts related in FO4 Edit and then attached my TextReplacer script instead, in CK. It works. I see zero difference between the quest I created in CK and the quest I copied over. While obviously, there must be a difference. "It just works." EDIT: After trying to add more aliases to the Quest in CK, the quest broke again and the script property editor went sort of haywire when trying to edit further. For example, it insisted that I had selected an Alias "TR_10" while simultaneously showing Alias "Player" as selected.... Closed CK and edited the quest aliases in Fo4Edit instead. Seems to be fine that way. I think there might be something not 100% right with the quest editor window in CK.
  3. Hey I'm trying basically the same thing, but I can't get it to work. The property in the script file that corresponds to the quest alias, it's always none at runtime. And I'm pulling my hair, because it is NOT none in the CK; The quest alias is clearly assigned to the script property. Yet, at runtime, TR_01.ForceRefTo(reference) fails, because the TR_01 property is none. Same for TR_01.Clear(). Game prints an error to the papyrus log about it as well: error: Cannot call ForceRefTo() on a None object, aborting function call error: Cannot call Delete() on a None object, aborting function call Also tried stopping and starting the quest, but to no avail. My script code is here: https://pastebin.com/GNUTbrWc Its obviously not complete, I want to get MSG_01/TR_01 working first. And here's the code to use the above TextReplacer: https://pastebin.com/uYRGc4VA Any advice ?
  4. Still, I don't get it. Registrator2k does the exact same (create an instance of item with placeatme, then forcerefto an alias via script property to it) in FO4 Hotkeys and it works: ; first ReferenceAlias Property Slot7_Label Auto ; and unassignedLabelReference = PlayerREF.PlaceAtMe(HM_UnassignedLabel, 1, False, True, True) ; then, later on... Slot7_Label.ForceRefTo(unassignedLabelReference) My attempt fails, as said, because the script property pointing to the alias is none at runtime. which makes zero sense. because it's not none in CK. So why does it work for FO4 Hotkeys but not for my code? I checked the quests, they look identical. Checked in FO4 that the script properties actually are attached to the quest aliases, and they are. Probably some stupid thing Im missing but I cant figure it out and it's driving me crazy. Oh well, I give up for today. EDIT: But i sent Reg2k a message. maybe he still reads.
  5. Well, the idea was to be able to set the actual display text at runtime... From a predefined instance of course. And I don't want to rename an existing object. I want to show "dynamic" text in a messagebox. For example, I want to provide a status line that reads "Status: " and then either "OK" or "NOT OK". So I have "Status: <Alias=TR_01>". The TextReplacer is supposed to take in MSG_01 an item (I tried with a message, first) that's named "OK" or an item that's named "NOT OK", based on the status of some other script. It should then fill the Alias TR_01 with whatever form has been passed to MSG_01. But it fails to do so because the Property TR_01 is none. There will also be paged text. 5 lines per page. The name of a recipe or an ingredient on each line, to be specific. So I have "Slot 1: <Alias=TR_01> Slot 2: <Alias=TR_02>" etc. MSG_01 shall be the recipe item for slot 1, MSG_02 for slot 2, etc... On page 1, slot 1 is recipe #1. On page 2, slot 1 is recipe #6, On page 3 its #11 etc. You see, this is for a configuration panel, made from Message Boxes. So, dynamic substitution is a must. If I set the ReferenceAlias' displayname to <Message> in CK, can I later change that at runtime to <Someothermessage> ? I don't think it's possible, is it? Now... what I really don't get is this: Why is the TR_01 property in my script still none, even after assigning the TR_01 alias to it in CK ??? I mean, it can't call ForceRefTo() because the TR_01 property is None. Ok, but when I check in CK, property TR_01 is set to "alias TR_01 on quest F4MS_qestTextReplacer". Right. But how TF can it be none at runtime, then! How is such a thing even possible?! Aliens ????? Does the Alias TR_01 that's been assigned to it not exist? Then why can it even be assigned? And why is it on the Quest Aliases tab? It makes absolutely zero sense to me. Maybe someone can shed a light? Also, can't believe I'm trying for the past 89 hours to print what is essentially a string to a screen, and fail. ahahahaha :sick:
  6. - I can for the life of me not figure it out! My code here: https://pastebin.com/GNUTbrWc I attached this script to a quest that has 8 quest aliases of type referencealias, named TR_01 to TR_08. I linked these to the respective script properties in CK. The Form I pass into MSG_01 is a MiscItem with it's name being the Text to show. Apparently this is the way to do it, as using a message supposedly will -for some reason- not work? No matter - All I ever get in game when using <Alias=TR_01> in a Message Box is [...], indicating the Alias is not filled. I set the owning quest of the message box to be the quest that has the script attached. There's this error in the papyrus logs: "error: Cannot call ForceRefTo() on a None object, aborting function call" I expected it to go away when I linked the TR_ properties to the actual TR_ aliases, but the error persists. Also tried restarting the quest after filling MSG_01, using .Stop() and .Start(), but to no avail. What am I doing wrong?
  7. I don't really understand anything about it, but I tried to resize using NifSkope first. That resized the model (it needs to be 50% it's size max), but the collision remained unchanged. Much of a problem, if the model is quite large. Also the model in question has some distinct shape that can't just be replace with that of, say, a shipping crate. I originally understood that resizing collision can only be done with 3ds max. But someone then pointed me to the possibility of creating and resizing static collections in the CK, and I tried that. But when I exported the NIF, it had no collision at all. I have no idea what went wrong :smile: While the original problem has been solved by someone sending me a suitable NIF, I'd really like to know what I did wrong re the missing collision. I might add that I'm a complete total utter noob when it comes to 3d applications. You give me a model, I script some cool s*** around it. But otherwise mostly just scratching my head and worrying to click anything in irrational fear of f***ing everything up.
  8. If I have an industrial wall light (the colored versions), can I toggle it's illumination status/animation/glow from script? Can I do so even while the light is unpowered? Thinking about adding some status indicators for the Factory script.
  9. Ladies and Gentlemen With the addition of the FactoryByNPC script to F4MS, I believe to be introducing an entirely new class of machinery to Fallout 4: The Factory. Just like a contraptions workshop builder, the Factory consumes resources to manufacture products from, according to a recipe. But unlike a contraptions builder, it does this in batches, multiple times a day, governed by a configurable schedule. It also interacts directly with the local workshop (or whatever containers you link to it by keyword), not requiring any conveyor belts. Instead, it has a settler assigned to it, to keep the Factory going. Very much unlike a contraptions builder, the Factory will keep production up even while player is not in the Factory's settlement. A Factory can optionally have a power connector and power requirements, in addition to requiring a settler tending to it. Production will keep going as long as there's enough raw material in the source container, and the Factory will manufacture partial batches if raw materials availability is limited. Also, it doesn't require Contraptions DLC, if the above made you think so. Thoughts? Prior art? I'd like to hear about it.
  10. Someone here who's got 3ds max set up and wouldn't mind resizing two NIFs with collision for me?
  11. Scripted my way around the connector problem by (optionally) spawning a connector into existence and then placing it at an offset relative to my furniture, using David J Cobb's rotation library. The connector is a custom activator based on a vanilla conduit, but with zero radiance and, unlike the vanilla counterpart, it can be powered. I can then set the actor value for how much power it draws and registerforremoteevent for OnPowerOn and OnPower Off on the connector. If the furniture is moved, the connector position gets updated as well. If the furniture is scrapped, the connector gets disabled (as per Kinggaths recommendations re scrap crash) instead of deleted. It's far from perfect, but acceptable for now. I think further improvement would require F4SE. The nice thing about it is, the same technique will -in the future- allow me to create objects with multiple connectors on them, while these connectors are all completely separate and can be powered and toggled individually. And it allows a furniture to have a connector (which must be an activator, which then means, as far as I understood, that a furniture cannot have a power connector per se because it is a furniture and not an activator). I suspect that connectors could be attached to pretty much anything that doesn't normally move, in this way. So. My factory script can now optionally be configured to have a connector and require power. Pretty sweet. Still have not solved the problem of rescaling the NIF to 50% it's size. SetScale() at runtime won't work, as it doesn't rescale the collision box either, so I don't think I can script my way out of this one.
  12. Yea, I've read about the 3ds max setup. I was hoping that maybe someone here does have it and wouldn't mind rescaling some two NIFs for me. I mean even if I had it, I wouldn't know how to use it. Have absolutely zero experience with 3d stuff. Took me a while to even figure out how to move stuff around in outfit studio, lol! Gonna try figure it out with the StaticCollectionPivotDummy in CK, like you said. First need to find out how to put the NIF into the render window... Re the connector, I tried looking in NifSkope at some NIFs that have connectors in them, and I saw there is a BSConnectPoint:Parents node in them. However, when I try to copy one of these nodes into, or try to add a new BSConnectPoint:Parents block to my NIF, that copied/new block always ends up at the last position in the node list/tree. The resulting NIF then causes a CTD whenever the build menu tries to show preview. I can for the life of me not figure out how to move the new block to position 2, right below "BSXFlags" (as it is in those other NIFs). I found a tutorial that says "click on 0 NiNode, then insert" but that also creates a node at the bottom of the list, i.e. a sibling of the root node instead of a new child! I then looked at the properties of the ConnectPoint, to see if there was a parent property maybe, but there isn't afaict. Last straw, I then tried "attach parent node" on the ConnectPoint, but that creates a new NiNode parent and from what I can tell I am unable to select the existing 0 NiNode instead. I have no idea how to proceed and no clue how the activator ties in. Like I said, all that 3d jazz is way above me. EDIT: Found a much better tutorial. One has to right click on the 0 NiNode, then select Node->Attach Extra Data, and NOT Block->Insert! ConnectPoint::Parent can then be inserted below the 0 NiNode. Unfortunately, NifSkope doesn't show the connect point added in this way, for some reason completely unbeknownst to me. Specifically, the green circle does not appear after I define a new connection point, enter some coordinates and then do Array->Update. I tried moving the coordinates a bit, in case the green circle would have appeared inside the model, but no dice. So I have a really, really hard time (impossibru) lining up the connectpoint with the connector on the NIF. Also, the numbers infront of the node names get all jumbled. NiNode is now 1, BSXFlags is 3 and the ConnectPoint::Parents is 0. Even tho their order in the tree appears to be correct (NiNode->BSX Flags, BSConnectPoint) and the game doesn't CTD on loading the preview, but lets me even place it. Small success? If so, it's being heavily offset by the fact that the game doesn't let me wire up the model at all, not even in the wrong place. Very frustrating and confusing. And I've not even touched the subject of textures and material swaps... *Sigh* Anyone willing to do NIF work for monies, lol?! Anyways... After rescaling those two NIFs, having connectors on them and getting the NIFs to work with interaction point animation markers, I'll be able to release my first mod :smile:
  13. Anyone here enjoys working with them and has the necessary setup to rescale them, including collision? I'd also like to learn how to add connectors for wires. Tried combining a vanilla connector with some piece of machinery in outfit studio, but the connector doesn't work.
  14. [deleted] Problem existed between keyboard and chair :smile:
  15. I suspect that it could be possible through DirectX Render To Texture facility. Likely not without some serious heavy-lifting done by injected code tho, if at all.
  16. Ok, I'm getting slightly aggravated now. Got a bunch of boolean const properties "DebugMode" that I set to true for debugging. Testing in Code If (DebugMode) etc yadda yadda. This used to work fine. It doesn't anymore. No matter if I set these properties to false or clear them (default being false).... at runtime, DebugMode is true. The save I'm loading from doesn't have my mod installed, so -besides them being const properties- there is absolutely no way they could somehow be baked into the save. What in the hell ?! It's like ever since I verified CK, stuff just breaks at random in the most crazy ways. What a waste of time.
  17. Aaaand the solution was to completely remove the property and then add it again. *shrug*
  18. I have this: Scriptname F4MS:F4MS_SkillTracker extends Quest F4MS_SkillTracker is attached to quest "AM_qestMiningSkillTracker" Then, in another script I have this: F4MS:F4MS_SkillTracker Property SkillTracker Auto Const In CK, I assigned "AM_qestMiningSkillTracker" to the SkillTracker property. But at runtime, SkillTracker == none. Even tho it is assigned in the editor (I checked twice and then twice again) and marked Const. In disbelief, I checked papyrus logs and found this: So that's why. Uhm yeah... But why??? F4MS_SkillTracker.OnInit() gets called; I print a debug message in that event and the message appears.
  19. Ok, so I just got up from bed and had CK running overnight. Went to compile something, then closed the CK. Tried opening it up again a few mins later, but... SURPRISE, SURPRISE! It won't work anymore. Freezes with Status "Initializing FaceGen...". The very few hits google spits out don't help at all. But notice how most of the hits are old and for Skyrim, some dating back to 2012....... Just tried a reinstall. Now getting a messagebox "Creation Kit: Fallout 4 failed to launch due to an unknown error (2.19.740.16.10.2583)." Scan and Repair says all game files are correct. Steam verified as well. Aaaand I just notice: The game also stopped working. Hangs on loading any save, menu music keeps playing. Great. LOL WTF? I got Bethesda'd!? Ideas, anyone? EDIT: Fixed! Using procmon, I found that the last thing CK did was loading plugins. By elimination, I found that it was my plugin causing it. Copied over a backup and all is well. Must have garbled the file when I last closed CK.
  20. Different question: If adding items to a container from a leveled items list like .AddItem(lvliList, n), will the game roll n times and add each, or roll once and add n times ? And totally unrelated: How to get the PC to comment, like "yess" or "excellent"?
  21. Exactly this. The responsible software component is called "Story Manager", if I'm not mistaken. I bet you two nuka colas, the fault would not occur on a machine with just a single CPU and no hyperthreading. Those probably also signified the era during which the relevant code has been written and tested. Maybe a mod could be created to test for and warn about presence of the bug, upon game load and/or periodically. By trying to assign some reference alias'd settler somewhere (hidden cell maybe?) to something, and checking IsActorAssigned() for results. Popping up a warning in a message box when the assignment fails.
  22. Well, not 100% exactly. The Information is not available in the workshopparentscript, alas. But, the functions that SMS calls on workshopparentscript to assign and unassign settlers, they both fire a corresponding event as they complete. And that will happen regardless if the workshop object is loaded or not. So I listen for those events to update a script local cache (simple boolean variable). Technically, the assignment information is thus persisted inside the NPC mining script and updated according to certain rules: - If I get an "assigned" event, the cache is set to true. - If I get an "unassigned" event, the cache is set to false. - If I get a "cell detached" event, I update the cache with the return value of IsActorAssigned() The cached information is only used when Is3dLoaded() returns false. When the object is loaded, a direct call to CanProduceForWorkshop() will be made instead. I am at this point not 100% positive that actor death would trigger an "unassigned" event. If it doesn't and if that should become a problem (altho I don't think it would), there's an event to be listened at for the death of an actor, too. The root of all evil pertaining to assignment, according to Kinggath, lies in the fact that assignments simply don't persist. As the game unloads the cell, it generally also unloads the actors aaaand... the assignment is gone (as far as Papyrus is concerned). The game will just reload the actor and reassign them, once the cell gets reloaded. Hence also why a reference alias would remedy the problem, because the actor in the alias will always persist. That's a boolean vs. a complex structure that represents an actor instance. Which is also why the "reference-alias-technique" could potentially end in enormous bloat, especially if we have hundreds of assigned actors. As I'm not really interested in the assigned actor, but only in the assignment status (yes/no) of the unloaded workshop object, I feel quite happy with my solution now.
  23. That's interesting to know that we can preload cells! I however found a perfectly satisfactory solution for the problem of remote assignment/unassignment by tracking suitable events on workshopparentscript. Those will fire reliably even when player uses SMS to operate on an unloaded settlement. Here's what came out of it: https://www.nexusmods.com/fallout4/mods/37531 More is on the way.
  24. This. As I restarted automatron from the beginning after not getting the Map marker, it was totally smooth sailing from there on. Not a single issue. Have since installed the Commonwealth GECK and a bunch of other Settlement Mods and set up supply lines. All is well so far. As I look back, I remember the first thing that popped up (completely vanilla game, zero mods installed) was endless loading screens. Then, when I first got to Cambridge (still far from installing the first mod), CTDs started happening. Was on a Core2Quad w 16GB RAM and Radeon HD6850 at that time; At the lowest possible settings. I remember that everything related BoS was indeed screwed from the get go. First quest, they sent me to clean out some subway station and when I tried leaving the station afterwards, CTD. Going through door -> CTD; Trying coc SanctuaryHillsExt -> CTD. Fix: Advance quest stage. First Vertibird flight to Prydwen: CTD. Very well known issue. Fix: Skip quest by console command. Much later, the same thing in Mulligan's mine (Nuka World): After killing the bloodworms, I couldn't leave the mine without CTDing. Turns out: Well known issue, fix is not to kill the blodwoorms and use console command to advance quest stage instead. Same with Liberty Prime not proceeding from the airport to CIT: Well known issue, fix is console command to advance quest stage, thereby skipping the coolest part of the quest. Yay. It would seem to me that much of the shenanigans are related to the Story Manager that handles quests. Maybe, the most reliable way to avoid any trouble would be not to do any quests at all. :wink: Funny enough, I've never had problems (except for low FPS) in Boston Downtown area. Many people still CTD there. For me, it became unplayable on my old machine (< 1FPS) during combat, but no CTDs. No FPS or CTD issues with new machine there. Weird however that the situation re Cambridge has not improved with the new machine (where the game was freshly installed from steam); I simply avoid most of the area. Also the first Vertibird flight of course CTDs just in the same way as on my old, under-specced machine. What's different is, with the new hardware, I reliably get the weird texture smear bug in certain locations (Bunker Hill being one of them), when facing a certain angle (usually direction South-SouthWest), combined objects are disabled and object fade setting is > min. Others have replaced their video cards with no improvement; Me, I just tone down object fade when it happens. Maybe I could create a mod to automate the process, as its location dependent. An interesting quirk is that, with the new hardware, textures of the models on the loading screens initially appear at high resolution, but after a brief instant, change to low resolution. *shrug* I think almost all of the bugs I've encountered have been experienced by other people, too. The "nora wandering around infront of cryo pod" thing for example first popped up in 2015. The Automatron DLC issue, on the other hand, appears to be more recent. I remember finding workarounds for most of the issues, usually involving console commands. What a total bummer this must be, I imagine, for people on Xbox or PS.... On the bright side, I've *never* had any settler steal power armor from me. Never. :D I did however experience the bug where the power armor gets all wonky and the pip-boy stops working... Which is another well known issue, of course. My current specs: i8700K @4.6GHz (OC), 64GB RAM (3600MHz, no OC), 2x M2 SSD (RAID 1), 1080TI (11GB VRAM, no OC). Never seen the game use more than 4.something GB RAM and GPU usage on the 1080TI hardly ever tops 30%, even in downtown area. Playing @1080p on ultra settings, no HD texture pack or anything installed. When I load the CK tho... topped 30GB RAM usage the other day. I've not yet had the Creation Kit crash on me. Then again, I've hardly used it for anything but to compile Papyrus and create properties that FO4Edit can't.
  25. Alright, I tried extending WorkshopObjectScript instead of ObjectReference. The behaviour was the same as with the casted reference: It doesn't work reliably. What I didn't try so far is removing the original workshopobjectscript that's attached to the furniture. But I texted with kinggath about the issue. This is what he had to say: So I think caching is really the only option here as I don't want to bloat user's save files or hog their RAM. Also, for the sake of "separation of concerns", I'll change my code back to extend ObjectReference. Bummer. One unrelated but notable thing: As I'm testing, I'm loading the same save all over again. Out of the 70 or so times I loaded that save now, I've just encountered the "can't assign any settlers to anything anymore" bug for the second time. It becomes apparent immediately, because the first thing I do when testing is plonking down a mine and then assign a settler to it. So, I don't think anything specific triggers that one mean ass bug (it cost me my first run on nuka world, the last good save was just before I went there). The cause is, imho, more likely a f***-up in the engine or, maybe, in some script. A race condition perhaps, that only manifests under relatively rare circumstances. And it happens immediately on load.
×
×
  • Create New...