Jump to content
ℹ️ Intermittent Download History issues ×

hereami

Members
  • Posts

    482
  • Joined

  • Last visited

Everything posted by hereami

  1. From my experience in general, AVs are troublesome with negatives, like you need Detrimental mgef and can't ADD negative modifier in OMODs. Maybe similar happens when workshop fetches a negative rating AV too and treats it as zero, even if tha's scripted processing? Just an assumption though.
  2. Yes, normally they're all belongings of a Workshop (WorkhsopItems), like a wall or table. Also have other properties like WorkshopID (which makes it problematic for companions to return back in original location, for example), but i don't remember all details. It might be curious to look into WorkshopParentScript in general, AddActorToWorkshop in particular.
  3. As i know, only applicable to REFR, i.e. object instances. Either assigned in editor or by SetLinkedRef(). Does what says, links one object to another by an optional keyword for easy and structured programmatic or hardcoded access from side of link keeper. Also tags an object as belonging to a family with a particular root instance, in some way of understanding. That's how actors are assigned their power armor, work objects, how chained patrol markers work, workshop structures and settlers are all linked to home (WorkshopItemKeyword) etc., well everything in game. Pretty flexible and convenient once you get the concept, and very interesting for dynamic quest alias interlinking. Basically, the same concept child-parent is used for anything in game - animations tree, dialogue infos and what's there else. Useful Conditions are HasLinkedRef, IsLinkedTo. Though not great for Parent-Child direction, it looks a lot of random processing to fetch every object linked to a particular anchor, e.g. buildable objects are all linked to workshop for instant access, but workshop isn't aware about their presence untill starts to search intentionally. Or let's say EnableParent, needs to check every object in world and determine if that has a link to it (IsLinkedTo), doesn't look very efficient, unless there is a dynamic list maintained for each parent in background. It's curious how coded internally. Would be curious to know how coded internally, must be something efficient.
  4. Well, assuming there is some very basic knowledge already and a wish to jump right away without wasting time on countless vids :wink: .. (Though wouldn't hurt of course). For example, CreationClub:StartAfterCharGenScript may start parent root quest after another quest reaches some point (stage). Place a group of objects in editor, assign them disabled EnableParent (xMarker or one of objects from the set), then use quest stage to enable the latter. Could be done without new scripts, though still custom fragment would be elementary, like myEnableParentRef.Enable(), Stop() or don't. ps. Tracking exact Objectives state and visibility would be more complicated i guess, is possible, but looks an excessive task too. EnableParent better be set Persistent, though suppose CK takes care about it automatically. GameDaysPassed global variable may be used to track longer periods and emulate smooth progress, unless it's dependent on other story events, e.g. a quest may store its value on start and recheck delta up to every 24 game hours (StartTimerGameTime(), OnTimerGameTime() ), then manipulates stages as necessary, enables or spawns things etc.. A script will be necessary, relatively simple though. Looking at existing things in game is a wise advice, and would be useful to check out how DC decorations are set up in game, i don't know. Maybe it's easy to utilize for own purpose (copy-paste, not touching the origin). Supposedly, OnLocationChange event is involved, or an area trigger, rather than constant time checks. Well, here you go for start, DmndHolidayHandler [REFR:0004408D] and its script, indefinitely wise and simple, haha... Sorry, just in talking mood.
  5. They stop popping up or become invisible or a demon eats them or whatever else. For now i can provoke this issue intentionally, but have no slightest clues still why that leads to said result, what makes my head hurt badly because impairs mod's health functionality . Scenario is: spawn a crafting workbench by quest alias and automatically activate it by player, then pop-ups cease to exist right away untill game reload. Any other furniture doesn't cause problems in same sequence. Well, platform is ps4, but i guess similar problem always existed on every other.
  6. I wonder if this Movable kw would allow to move unmovable references that troubled me, so thanks for reminding. Speaking of hints, there is working script DN151_MovableWater and related quest?
  7. Use OnDeath event, e.g. DefaultRefOnDeath, DefaultAliasOnDeath or any custom script to set a stage somewhere or do whatever else. But first you need to learn his relationships and know where and what to change if want any consistency in game. Not sure if his early demise is envisaged by game.
  8. Yes, that's how tested Events, also the fact of Saying a Topic doesn't do anything by itself, he'll bark with full mouth without that secret unknown word (Anim Event name). Also i've tried one related to face anim, don't remember name, no use. I think there is problem with addressing AnimObject and game loses its tracks because parent object doesn't exist anymore (ehm, at least from my understanding of things)*, then new ones keep stacking, definitely looks very funny, but isn't right. And then some general reset is required. Dogmeat is uniquely hardcoded i guess (PlaceItemInMouth() is never used in base scripts) and not supposed to equip/consume food normally like good dogs (btw. NoVisualOnRetrieve kw doesn't help either). I've noticed there's FXOff command, sounds suitable, maybe could do. * it's bullshit it seems, player consumed potions keep to exist for example (why?). It seems to be Acquire what places things in mouth, but why preventive keyword doesn't work then? All unclear.
  9. Hi. Which of them does reset any drawn anim object and probably actor's animation state? Why the question. For Dogmeat specifically, when food is equipped while not in storage menu, then its visual model becomes attached to mouth despite the item itself was consumed and ceased to exist probably, some interesting is that they do stack. Tried most suitably sounding commands like AnimObjUnequip, IdleStop, g_RootInstant but for no result, can't try every one of them, and probably overlooked an obvious name perhaps. If he is activated to command state, then object disappears, so i guess there is some generic animation command (Event) issued internally during the activation process. CommandMode package calls DogDropItems() at package End, so it's not a primary method used by game, though fortunately this function helps to remove the phantom visual too. Since i've managed to utilize said solution it's not really crucial anymore, but would be curious to know still for other possible troubles in future maybe, also it could be more flexible method - Idles are more available for use without scripts. Thanks.
  10. Could be interesting though. I don't know much about nifs, but i know there can be invisible trigger box model which acts as a trigger primitive without specifying primitive data in refr (if placed into Activator form), also don't know if a model can have deliberate collision layer other than be a trigger box, but if actually can, then a uniform custom invisible model with L_DETECTION might be created and then placed at selection of noticeable bush-looking things by their OnLoad() event as separate objects. Still would involve edits of every suitable base form to add the spawning script, but won't be as massive as editing every model (in case if integrated primitive volume complementary to visible model is doable in a single nif) or placed refr to add said collision layer. Won't be exact match of visible vs invisible parts, but could be adjusted at some extent by GetScale/SetScale if necessary. Not sure if actors can be enabled to exploit it consciously**, as i understand cover-enabled obstacles for AI can be only specified in CK anyway as part of navmesh or something, can't be spawned. Existing alternative to custom L_DETECTION nif. As said there are invisilbe TriggerBox models in game files already and could be placed at runtime as Activator in same way OnLoad or maybe else, but needs more processing like Enter/Exit events and magic, also careful match of scale somehow since they have preset size and shape. Effect could be some dramatic like Set Undetectable (haha, eternal glory to Bush wookies of Nuclear Winter), or just Mod Detection Light or something (perk entries). ** ps. Though maybe.. If to mark objects with a keyword, then a custom combat override package could search for it and command to sit there while npc is fleeing, or maybe root packages modification too. However, a problem would be to specify said override for every interested character without interfering with too many forms.
  11. Ok :smile:, try something, but still gotta need to track down what actions each keyword triggers exactly, to not act blindly. And for secondary animsXX group, they can be combined, e.g. animsStub + anims1hm are default for Knife. If there's a need to remove keyword from weapon, then i suspect there is REM function in [FormID,Int] OMOD entry with a purpose of temporarily removing forms from base objects, but honestly i've never tried it to see if works as suggested, and just made my custom weapon keyword-less and provided base Default OMOD. (ps. Hmm, or maybe i tried and it didn't work as expected, can't remember now.)
  12. Yes. Untill someone else provides a comprehensive guide, here's just in short, because it was long ago. This includes change of Animation Type (named Type in OMOD), and keywords like WeaponTypeMelee1H etc. (major modificator it seems, both DFOB and used for idles) and anims1hmWeapon etc. (secondary group, for idles anims). Now i'm unable to explain in all details what bad happens if they don't correlate, better they do i think, though might lead to interesting results if don't? Looking at my mod, for example, to add bottom hook to Knuckles it was enough to add kw animsPowerFist. Switching from 1h to 2h involves change of Type (1 to 5) and both keyword groups (e.g. WeaponTypeMelee1H to WeaponTypeMelee2H, anims1hmWeapon to anims2hmWeapon), for suitable things like Hydrant. Change of swing anim to wider needs substitution of anims2hmWeapon by anims2hmWideWeapon. May look at vanilla things for now, there will be nuances for different weapons i guess, and keywords are named somewhat meaningful.
  13. It's probably certain that Eating circumstances are out of direct control, i.e. that mysterious Potion comes and goes. Doesn't really matter much, why not use an Idle with idleEatStart to command as necessary? Maybe could be embedded in package. Still can modify Animations tree conditions though in worst case. Look. AnimFurnChairWithTable and similar major keywords is what defines animations set for a Furniture, the set is defined in Race SubGraph and contains paths to data folders which contain subsets of specifically purposed animations. Paths are stacked and files in topmost override lower ones, for better understanding grab BSA Browser and look inside those folders, files naming is uniform mostly and defines the purpose of animation. We can edit the set of Paths in SubGraph (best is to create an additive form) and at certain extent modify behaviour of Furniture. That's how our Table replaces default Drinking idle, what i wondered meself about. But EatIdle is one of specialized cases and will be called by game's decision anyway or manually by any other means, unless a replacement is provided for Loop. At least that's what i can see for now. ps. Although maybe i'm wrong in some part. Trying to add Writing and EatingTable Paths to PicnicTable, but despite there is no conflict in those Paths for any Enter/Exit animations, still it makes furniture unusable, all entry markers disappear in CK furniture view too, confusing and unclear as hell.
  14. This would be still interesting to know the cause of said freudistic trouble as some academical knowledge, but found a neat workaround - Say procedure, while neither Dialogue or DialogueActivate seem to work at all. Marvelous thing is that ObjectList's exact target may be passed directly into quest alias by a fortunate leftover vanilla script, charming... Not that anybody cares though except rare young scouts making mods for ancient piece of engineering art like ps4, haha...
  15. Mucho confused. Scenario: an independent npc, who is not a teammate or anything, runs custom package and looks for a target, then uses Activate procedure on choosen Target, no damage involved. Result: Target goes aggroed on Player. Activator and Target are in same temporary Faction, which is Friend to itself, nobody is Enemy among us. Target is NoPickpocket and may be IgnoreFriendlyHits, just for this case if considered as an attempt of stealing or some violence, but neither does help. Both being Teammates or not doesn't matter too. Question: what is going on here and how can be avoided should be prevented? In general, task is to fire OnActivate() for the target on touch by another npc, seeming easy alternative DialogueActivate procedure doesn't fit unfortunately since doesn't provoke the event just by itself. Custom scripting is unavailable, if something. Thanks.
  16. > But here I can't find any reference to what makes the difference between Eat or Write Animation either. < From ActionIdle processing logic in default case it stays up to game's decision whether a potion is donated to actor when he's firing ActionIdle in a furniture. If yes, then he eats, if no, then farther entries in tree are processed, because he's not consumed anything - nothing to wonder about here i guess :smile:. Try to actually feed him OnSit (i.e. EquipItem(any long-lasting potion)). By the way, https://geckwiki.com/index.php?title=GetIsUsedItemType ps. That Eat procedure, does it create FakeFood once momentarily, once and for all time of being current, or periodically though? Also to solve problem with having exact food type inside inventory it could be exploited if CreateFakeFood is disallowed (instead of having conditions elsewhere). Rather curious. Meself was going to tinker with all that closer some time, but haven't yet. >game time governs when it runs the eating animation< ps. Indeed by the way, there is lunch, dinner timing https://www.creationkit.com/index.php?title=Procedure_Sandbox , but shouldn't things like Eat procedure override it and process whenever is active? But companions seem to drink (aka eat) while sitting at any time of day, some confusing.
  17. Wait.. Think i understand finally what's that jazz. Never used this furn before and couldn't figure out how a Loose only unused animation entry becomes used by default in idleEatStart, now guess it's embedded in BehaviourGraph for this exact AnimFurnChairWithTable keyword (which name gives poor clue about Eating btw) and replaces default drinking animation seen everywhere else. Probably a phantom potion is generated randomly when Sandbox Allows eating and actor decides to Idle a bit and fires ActionIdle. The condition checks if some potion was provided to actor in a Package, it's all random. Though really curious, where does it come from, possibly a DefaultObject, but most likely is hardcoded. What i understand, no other easy choices other than patching Animation tree to modify conditions (potentially pita), or using PlayIdle and OnSit in any suitable manner to ensure eating fact. May try to create specific custom furniture entry, which only has Eating animation, inside HumanSubGraph. Also may try Eat package/procedure maybe, but not sure if would fire ActionIdle. ps. Not sure why script needs to deal with package, but if a custom package is involved, then could try to add EatingOnTable loose anim to its Idles list, might need to update conditions perhaps to play in Sitting and suitable furniture only.
  18. What i know, there is WindowLightBeam [MSTT:0004DE0A] used originally for this purpose. Should be handled by script i guess, first encountered them in Noirhouse and made turnable on/off by switch for example, but with custom scripts could be more advanced. Also Construction light has visual rays somehow, i think. ps. Haha, that's all wrong i guess and is just a neat addition, but i believe any building that has a window to outside must also have sun/moon and visible world outside, regardless of being interior cell and game provides that possibility, so natural lighting is there always by default.
  19. Just not to spam another topic. Some other related question about triggers. I suppose there must be a native way to detect Actor being inside a primitives volume besides OnTriggerEnter/Leave, since game should be always aware of that fact just to handle said events properly, something like hypothetic conditon IsInsidePrimitive. Maybe i just missed it, can't find anything. Thanks. Although maybe not... For example, when a trigger box is moved away from player, then OnTriggerLeave doesn't fire. Logically that's correct though, because formally it's the primitive volume leaving player in current place instead.
  20. Can play LOOSE idles by PlayIdle. For some example DefaultAliasReadWhileSittingScript. But i'm curious now how does the above "work". This idleEatStart is default thing they do while sitting - drink from a glass, not eating at table. Second, have changed the condition in Animation tree for entire game instead of fixing a single object. I suppose only first successfully matching animation entry in tree is picked (e.g. may be observed in a tree consisting from GetRandomPercent conditioned entries), there is no "multiple match", although one time i had a weird issue when multiple entries were played for same Action call and it was somehow triggered by certain combination of conditions higher in this custom Action's tree, fixed that, but still don't understand exact cause.
  21. Let's say it's MS09ForceField nif model wrapped into ACTI and placed in a dummy cell by editor, because it needs external primitive data still. When attempting to extract into world by MoveTo, then REFR data is moved and does function, including primitive box and script (which is attached to base object btw.., very weird), but not visible model. The fact that primitives entities are movable is also very weird by itself, but is beneficial at least. When object is spawned, then no problems with moving exist, but sadly no own trigger collision (or whatever it's called) is embedded in this model. What prevents the operation here and how to circumvent by magical flags or else? Similar nonsense happens to Terminals and other pre-placed things in world. ps. Ironically, that model was originally found in MovableStatic, haha...
  22. Well, life could be simple, because there is exact Accumulate Magnitude archetype, which i forgot about, but it's not simple again as it sounds because there is mysterious WardPower involved. Besides that looks some suitable: Grants up to <MAG> of a chosen actor value, but starts at 0 and increases over time, though not exactly what it should be in my understanding. How is that magic stuff used properly to make it work, any Skyrim adepts here?
  23. Ok. Pour argh, Poor pixel soul seems to have no chances then, good.
  24. Hi. When placing or moving objects an object is moved or placed in game it may appear shivery, unstable. Not very pleasant phenomenon, but does it technically affect anything seriously in a negative manner, i.e. should be avoided at any cost? Is that instability applicable to invisible objects too, e.g. markers? ps. Just by the way.. What is Condition to determine Cost of an item? GetGoldValue seems be absent as condition, and GetGold is for actors only.
  25. There probably should be persistent destination marker provided in that new worldspace. All doable, but what need exactly, step-by-step solution or approximation hints? I guess it may be as simple as setting him linkedRef like DMP_Sandbox_2048 to new destination and releasing from higher level packages. i'm not very familiar with DefaultMasterPackage usage though, also success may depend on how Actor was tailored. May use MoveTo() to speed up traveling or not. Killing may require active quest support still, but isn't hard to do at different grades of elaboration. Check out CorpseDismemberScript for example, also with minor adjustment to invert stage check it may be placed directly onto Actor, so that he's doomed once the final stage is done, regardless of quest being running. May be modified to OnLocationChange. Or simply can Kill from quest stage script immediately after MoveTo().
×
×
  • Create New...