-
Posts
1492 -
Joined
-
Last visited
Nexus Mods Profile
About dylbill

Profile Fields
-
Country
United States
Recent Profile Visitors
41627 profile views
dylbill's Achievements
-
To "convert" an NPC into another, just disable / delete the npc and use PlaceActorAtMe or MoveTo to replace it with another. I use resurrect in my NPC Death Alerts mod. Here's how I do it. npcdeathalerttransferchest is just an empty container base form. objectreference transferchest = npcdeathalertchestref.placeatme(npcdeathalerttransferchest, 1) armor helmet = victim.getwornform(0x00000001) as armor armor clothes = victim.getwornform(0x00000004) as armor armor gloves = victim.getwornform(0x00000008) as armor armor amulet = victim.getwornform(0x00000020) as armor armor ring = victim.getwornform(0x00000040) as armor armor boots = victim.getwornform(0x00000080) as armor armor shield = victim.getwornform(0x00000200) as armor armor circlet = victim.getwornform(0x00001000) as armor utility.wait(0.2) victim.removeallitems(transferchest, true, true) ;utility.wait(0.2) ;transferchest.activate(playerRef) utility.wait(0.75) victim.resurrect() utility.wait(0.75) victim.removeallitems() utility.wait(0.2) transferchest.removeallitems(victim, true, true) utility.wait(0.2) if helmet != none victim.equipitem(helmet) endif if clothes != none victim.equipitem(clothes) endif if gloves != none victim.equipitem(gloves) endif if amulet != none victim.equipitem(amulet) endif if ring != none victim.equipitem(ring) endif if boots != none victim.equipitem(boots) endif if shield != none victim.equipitem(shield) endif if circlet != none victim.equipitem(circlet) endif utility.wait(0.2) transferchest.disable() transferchest.delete()
-
RegisterForMenu should still work on a referenceAlias script.
- 22 replies
-
- 1
-
-
- crime gold
- crime/bounties
-
(and 1 more)
Tagged with:
-
The user doesn't need the source files at all, they only need the .pex files in data/scripts. In your CreationKitCustom.ini, you can add this: [Papyrus] sScriptSourceFolder = ".\Data\Scripts\Source" But you will still need to copy the files from Data\Source\Scripts to there cause that's where the creation kit will have unzipped the source files to, and then re-install skse after to overwrite the .psc files. I just always make sure all source .psc files are in both folders so I don't have to worry about it.
- 22 replies
-
- 1
-
-
- crime gold
- crime/bounties
-
(and 1 more)
Tagged with:
-
Most likely your source scripts aren’t in the right folder. In SE they changed the source folder to data/source/scripts while in le it was data/scripts/source. I just always make sure all the source .psc scripts are in both folders
- 22 replies
-
- crime gold
- crime/bounties
-
(and 1 more)
Tagged with:
-
No problem, and yes, you can’t use skse if uploading your mod to xbox.
- 22 replies
-
- 1
-
-
- crime gold
- crime/bounties
-
(and 1 more)
Tagged with:
-
xkkmEl is correct. I'd recommend something like this. May need to be tweaked because I'm not sure how fast crime gold is updated. no skse version Faction Property CrimeFactionWinterhold Auto Event OnActivate(ObjectReference akActionRef) if akActionRef == Game.GetPlayer() if IsLocked() int crimeGold = CrimeFactionWinterhold.GetCrimeGold() Utility.Wait(2) ;wait for lock picking menu to close int newCrimeGold = CrimeFactionWinterhold.GetCrimeGold() int diff = newCrimeGold - crimeGold if diff > 0 ;player was likely caught CrimeFactionWinterhold.SetCrimeGold(newCrimeGold + 100) ;add 100 to crime gold Endif Endif Endif EndEvent skse version Faction Property CrimeFactionWinterhold Auto int crimeGold Event OnActivate(ObjectReference akActionRef) if akActionRef == Game.GetPlayer() if UI.IsMenuOpen("Lockpicking Menu") crimeGold = CrimeFactionWinterhold.GetCrimeGold() RegisterForMenu("Lockpicking Menu") Endif Endif EndEvent Event OnMenuClose(string menuName) if menuName == "Lockpicking Menu" UnRegisterForMenu("Lockpicking Menu") Utility.Wait(2) int newCrimeGold = CrimeFactionWinterhold.GetCrimeGold() int diff = newCrimeGold - crimeGold if diff > 0 ;player was likely caught CrimeFactionWinterhold.SetCrimeGold(newCrimeGold + 100) ;add 100 to crime gold Endif Endif EndEvent
- 22 replies
-
- crime gold
- crime/bounties
-
(and 1 more)
Tagged with:
-
How to add collision to nif ports from fbx files?
dylbill replied to Wolfstorm's topic in Skyrim's Creation Kit and Modders
I've used this tutorial to add collision to nifs before: -
Put a script on the display case that extends objectReference with the OnActivate event.
- 22 replies
-
- crime gold
- crime/bounties
-
(and 1 more)
Tagged with:
-
No problem The other option is to make your own skse plugin. How I got started was Mrowr Purr's tutorials. Basic setup: https://www.youtube.com/watch?v=rTN9bAB2S9A&list=PLektTyeQhBZeDIRp2g15SsK1GX2Ig8YVW To bind functions to papyrus: https://www.youtube.com/watch?v=lBs2mhB1Abs&list=PLektTyeQhBZeDIRp2g15SsK1GX2Ig8YVW&index=9 My plugin is open source, so here's a link to those functions I added: https://github.com/Dylbill-Iroh/DbSkseFunctions/blob/main/DbSkseFunctions/src/BipedSlots.cpp
-
Hey, coincidentally I was working on similar functions for my script resource Dylbill's Papyrus Functions, so adding that wasn't too much trouble. Relevent functions in DbSkseFunctions: GetArmorAddonRaces ArmorAddonHasRace AddAdditionalRaceToArmorAddon RemoveAdditionalRaceFromArmorAddon https://www.nexusmods.com/skyrimspecialedition/mods/65410
-
[Mod Help] Script to advance quest upon NPC death.
dylbill replied to WitchsWorkshop's topic in Skyrim's Skyrim LE
For this I think what would work is OnStoryKillActor https://ck.uesp.net/wiki/OnStoryKillActor_-_Quest set up with the Kill Actor Event https://ck.uesp.net/wiki/Kill_Actor_Event in the story manager. Another method is if you're using SKSE you can use my mod Dylbill's Papyrus Functions that has DbSkseEvents.psc. Here's an example script: race Property giantRace Auto Event OnInit() ;register this script for when the player kills any npc DbSkseEvents.RegisterFormForGlobalEvent("OnDeathGlobal", self, Game.GetPlayer(), 1) EndEvent Event OnDeathGlobal(Actor Victim, Actor Killer) if Victim.GetRace() == giantRace ;do something ;unregister for the event if it's no longer needed DbSkseEvents.UnRegisterFormForGlobalEvent("OnDeathGlobal", self, Game.GetPlayer(), 1) endif EndEvent -
Gotcha. If it was me I'd write a papyrus script to speed up the process. You can check with skse and papyrusUtil. Put all the armorAddons from ks hairdos in a formlist in the ck. In papyrus cycle through the list, check each with ArmorAddon.GetModelPath(bool firstPerson, bool female) and MiscUtil.FileExists(string fileName). If it doesn't exist, Log or print the armor addon to an external file.
-
identify the (xx) load order number for baseIds
dylbill replied to Good0Provider's topic in Skyrim's Creation Kit and Modders
If you're using skse and want a search function similar to help console command, you can use my mod Dylbill's papyrus functions: https://www.nexusmods.com/skyrimspecialedition/mods/65410 It includes this function in DbSkseFunctions.psc: ;Get all forms who's name (with GetName()) match the sFormName. ;nameMatchMode 0 = exact match, 1 = name contains sFormName. ;formTypeMatchMode 1 = forms that have a type in formTypes. ;formTypeMatchMode 0 = forms that do not have a type in formTypes. ;formTypeMatchMode -1 (or if formTypes == none) = formType filter is ignored completely, get all forms regardless of type that match (or contain) sFormName. Form[] Function GetAllFormsWithName(string sFormName, int nameMatchMode = 0, int[] formTypes = none, int formTypeMatchMode = 0) Global Native Then you can use DbMiscFunctions.GetFormIDHex(Form akForm) for each form in the array to get the ids in hex format.