Jump to content

LarannKiar

Premium Member
  • Posts

    1378
  • Joined

  • Last visited

Nexus Mods Profile

3 Followers

About LarannKiar

Profile Fields

  • Country
    United States

Recent Profile Visitors

127556 profile views

LarannKiar's Achievements

Mentor

Mentor (12/14)

85

Reputation

  1. Use the Travel AI Package Template with Place to Travel: Near Self. If you'd like the NPC to wait (stay still at the marker) for 60 seconds there's probably another AI package you can activate for them through a script after 60 seconds. By using a script, you can decide whether you want to reset the timer once the combat is over or not.
  2. I recently came into possession (found it online) of a CK documentation that judging by its content BGS and the CK beta testers used. I combined the pages to a single .html and packed it with the pictures (~125) into a .zip for convenience. I though I'd share it with fellow Starfield mod authors as I see no reason why I should keep it for myself (it doesn't contain any license code, password, copyrighted material or any trade secret..). Notes: - I know there are already youtube tutorials on the CK but hopefully this manual will still prove useful. - it's not a complete manual by any means - you need to extract the content of export.zip to a folder to see the embedded images - not all images referenced in the written text are available - sorry if it's been posted earlier, I haven't encountered it - I don't know who wrote it and I can't verify it's fully correct, I upload it "as is".
  3. If in a previous gameplay some quest data couldn't be queued/promoted to be displayed due to some hardcoded limit or maybe a bug, reloading a save can help as the manager that handles most quest processing ("BGSStoryTeller") as well the VM (Virtual Machine, usually referred as the "Papyrus engine") will get "refreshed" and start to process the saved data loaded by the loader thread. Also, during loading, often other budgets are defined for subsystems as there's no need to concern about ingame stutters and lags (loading everything while being hidden by the Loading Screen has its advantages). You can try calling SetObjectiveDisplayed or SetObjectiveCompleted.
  4. Try unchecking the Must Complete flag. Everything on the images seems fine but beyond the Must Complete flag, I'd set "Weapon to Use" to Any Object >> Object Type: Weapons: Ranged and just add the Missile Launcher to the NPC's inventory.
  5. a) few hundreds would surely work but it would obscure the map. b) you can remove the reference from the alias but I remember if the Objective remained visible (so IsObjectiveDisplayed(x) == true), the marker could sometimes became broken.. so I typically call SetObjectiveDisplayed(x, False) prior to Clear() the alias. If you want one of the targets to disappear on becoming an inventory item, try adding a GetContainer == 0 Condition to the Objective. c) probably has something to do with the VANS perk, when you hold the VATS key to show the path to the current (active) Quest target. e) to completely hide it from the Quests tab? I don't think that's possible in vanilla.
  6. [T] = Temporary; technicaly ChangeFlag 0x1, native code on "delete attempt events" like OnUnload will try to delete this reference. "Try" because blocking conditions like persistence apply which prevents deletion. [EP] = Editor Persistence; technicaly FormFlag 0x400 (all kinds of persistence results in this form flag being set), typically displayed on persistent references that don't have Persistent Promoters but not necessarily. [PP] = Persistent Promoted reference; a form (can be base form and reference) keeps this reference persistent; note: that are special type of promoters like PapyrusPersistentForm (which has hardcoded, non referenceable FormID 0x28A and treated very differently than a conventional form). E.g. being held by one of a Quest's Quest Alias caused this quest to become a promoter form. [D] = Deleted; technicaly FormFlag 0x20, forms which are marked for deletion recieve it. Native code often use it as a blocking condition (to short-circuit a function) when processing forms for various reasons. For more info on persistence, form flags, change flags and temporary references you can check out the Garden of Eden Papyrus Extender documentation (the first two links that are available on the main mod page). As for why a references become invisible if [D] flag is set, I think because Papyrus Delete() internally calls Disable() or at least the it deattaches the reference's 3D but I'm not sure.. lately I've been making mods for Starfield and I forgot some of the details and wouldn't like to mix up the function behaviors.. Both FormFlags and ChangeFlags are applicable to forms so not strictly to references just the Console only provides interface for reference selection (i.e. Prid doesn't work on base forms). Form type typically tells what flag a form can receive and what it means (i.e. the same hexadecimal value could mean different for two different typed forms).
  7. Sorry I missed that.. if it shows up on the map correctly then I don't know. I remember I encountered a similar issue years ago but I'd rather not guess.. I can't recall what was the exact solution.
  8. A non Requires Player Activation flagged Topic Info that has the highest Priority Greeting subtyped Topic among the dialogue quests applicable to the NPC should make the NPC automatically greet the player if they have a Package with Package Template ForceGreet, assuming there's no blocking Condition. If it doesn't, well I'm not sure right now if fAIGreetingTimer [GMST:000467BC] applies to non Requires Player Activation topic infos but I think it does.. and the native code sometimes "forgets" to trigger the greet line, causing the NPC to stand still. You can be certain the line is played if you write a script for it. Function RegisterForGetWithinActivateDistance() RegisterForDistanceLessThanEvent(greeterActorRef, Game.GetPlayer(), 180.0) ; INI setting fActivatePickLength:Interface EndFunction Event OnDistanceLessThan(ObjectReference akObj1, ObjectReference akObj2, float afDistance) Actor greeterActor = akObj1 as Actor If greeterActor Topic GreetingTopic = Game.GetForm(0x123456) as Topic ; assuming you know the FormID of the Topic greeterActor.Say(GreetingTopic, akTarget = akObj2) EndIf EndEvent
  9. This script would rotate the reference the script is attached to immediatelly (without visible translation). Scriptname RotateHelperScript extends ObjectReference Const ; attach this script to your Static reference, so the ObjectReference of the Static base form Float Property fDegrees = 180.0 Auto Const Event OnActivate(ObjectReference akActionRef) If akActionRef = Game.GetPlayer() ; player activated this Static reference Float fOriginalAngleZ = Self.GetAngleZ() Self.SetAngleZ(fOriginalAngleZ + fDegrees) EndIf EndEvent
  10. Those are implemented by SKSE and F4SE doesn't have OnActorAction event. Not all animations send animation events to Papyrus but if the ones you'd like to listen for do, you can use RegisterForAnimationEvent() instead.
  11. I added SetCameraTargetZoomOffset() to Garden of Eden Papyrus Script Extender v19.1 today, if you're interested. GetCameraTargetZoomOffset() was added in v19.0, I received a request for its Set pair sometime last week.
  12. If the Quest Objective shows in the Pip-Boy >> Quests tab, you also need to make sure Quest Objective Data >> Target Ref points to the Quest Alias of the reference. If it does, you may have a blocking Condition.
  13. You'll need to register the script for the OnHit event because the native code only sends this event to registered Papyrus scripts. Scriptname YOURSCRIPTNAME extends Actor Event OnInit() ; event is sent when this script is initialized (e.g. installed the mod the Actor is part of, started a new game if vanilla, etc.) RegisterForHitEvent(akTarget = Self) EndEvent Event OnHit(ObjectReference akTarget, ObjectReference akAggressor, Form akSource, Projectile akProjectile, bool abPowerAttack, bool abSneakAttack, \ bool abBashAttack, bool abHitBlocked, string asMaterialName) If akTarget as Actor ; akTarget is an Actor (akTarget as Actor).PushActorAway(akAggressor, 100.0) ; akTarget (the Actor this script is attached to) will be pushed back EndIf RegisterForHitEvent(akTarget = Self) ; native code unregisters the script for OnHit after it is sent so you need to reregister EndEvent
  14. Check out the Skyrim CK wiki for more info about Effect Shaders. Regarding particle effects, I think the ones you're thinking of are animated meshes. You'd need NifSkope to edit (and Blender/3ds Max to create complex) meshes. Papyrus scripts can also control mesh animations, see for example PlayGamebryoAnimation().
×
×
  • Create New...