-
Posts
1309 -
Joined
-
Last visited
-
Days Won
12
Everything posted by scorrp10
-
How do I stop spawned NPC's from running away?
scorrp10 replied to szmnozi's topic in Skyrim's Skyrim SE
Yeah, I usually use 'sucsm 2' for panning free camera around an actor. -
How do I stop spawned NPC's from running away?
scorrp10 replied to szmnozi's topic in Skyrim's Skyrim SE
As mentioned, it really depends. NPCs that have an AI package that requires them to be in a certain place, will try to go there. Places like GomaPeroLand connect to main world, so NPCs will try to path. A place like Aether Suite is disconnected and is only reached via teleport or spell. Summoned Hulda in Tamriel or GomaPero Land will immediately try to go to Whiterun, to Bannered Mare. But if I summon her within Aether Suite, she stays put. Then, there are Posers. (GomaPero, GSPoser etc) that contain a large collection of idles to apply to NPCs, and while posed, NPC will stay put. Generally best used with a Poser Hotkeys mod. If you want to try various outfits in various lighting, why not just try on yourself? (the player) . From main menu, just use coc to go to a place of your choice, use showracemenu to change your appearance as desired, and use Simple Item Spawner to get stuff. Much easier changing outfits, and place yourself wherever you want. I personally have a few 'model' saves just for this purpose. I.e. this here is Rose... -
How do I stop spawned NPC's from running away?
scorrp10 replied to szmnozi's topic in Skyrim's Skyrim SE
Just FYI, spawning an NPC via placeatme creates a new copy of that base actor. The spawned copy will have all properties of the base, but will not be loaded into any quests that NPC is usually a part of. If the base actor has an AI package that they need to be at a certain place, the actor will try to get there as long as they can find the way. You could use a disconnected cell (i.e. qasmoke) for this. With no way to get back to main world, they will not go anywhere. Another option is to make that NPC your follower. Click NPC in console. getrelationshiprank player If it shows 0 or less, setrelationshiprank player 1 Then, add then to potential follower faction: addfac 0005C84D 1 Afer this, NPC should have the "follow me" dialogue option. -
Make your follower scripts work with that package? I.e. add a check for the follower being mounted?
- 10 replies
-
- follower
- creation kit
-
(and 1 more)
Tagged with:
-
Markarth - Refurbished Abandoned House
scorrp10 replied to DirebearCoat's topic in Skyrim's Skyrim SE
You can always open console, click the dog, and type 'disable'. -
As mentioned, the process is generally simple - compact FormIDs, set ESL header flag. Oh, and you want to do that in SSEEdit. Compacting forms in CK used to work, but last time I tried, it did it real weirdly. I think it has to do with that change for light mods in 1130+ Things to do when compacting forms: If your mod has any actor heads under FacegenData, the head .nif filenames must be changed. Same goes for voice files. Goes without saying, any save game made with your mod included becomes invalid once you compact the forms. So if you are converting an existing mod that people might be using, be sure to warn about this
-
Basically, my thought would be to have a perma-running quest where both player and Henry are aliases. You likely already have one for the dialogue. Henry alias would have a stack of packages, with horse riding one being a higher priority, but having a condition that player is also mounted. However, you also need some sort of script attached to player that will detect when player mounts/dismounts and will call TryToEvaluatePackage() on Henry alias. ; Global Bool PlayerIsRiding ReferenceAlias Property HenryAlias Auto Actor Property PlayerRef Auto ; somewhere at game load RegisterForAnimationEvent(PlayerRef, "MTState") PlayerIsRiding = PlayerRef.GetAnimationVariableBool("bIsRiding") Event OnAnimationEvent(ObjectReference akSource, String asEventName) If(akSource == PlayerRef && asEventName == "MTState") Bool NewPlayerIsRiding = PlayerRef.GetAnimationVariableBool("bIsRiding") If(NewPlayerIsRiding != PlayerIsRiding) If(NewPlayerIsRiding) ; Teleport horse to Henry EndIf HenryAlias.TryToEvaluatePackage() PlayerIsRiding = NewPlayerIsRiding EndIf EndIf EndEvent
- 10 replies
-
- 1
-
- follower
- creation kit
-
(and 1 more)
Tagged with:
-
Next, getting the arm feathers. Open the female project, right-click on arm mesh, choose Export to NIF. Same for arm001 mesh. Now in the male project, File - Import - From NIF, import both arm feather meshes. Checking their bone weights the y seem to be close enough, so I leave them as is. They can be tweaked later. However, for both arm meshes I do Slider - Conform Selected. and Save. Here is the result
-
Why do you keep putting the extra shapes under that Fahrbod:34 NiNode? Where are you editing this thing? So, I open your malebody_0.nif in NifScope. Ctrl+C torsofeathers mesh under Fahrbod, Ctrl+V it under SceneRoot. Ctrl+Del Both Fahrbod:34 and HIMBO Spells - Optimize - Remove Bogus Nodes and Unused Strings. Save and Close. Start OutfitStudio, File - Load Reference - HIMBO Body (SoS Phys) File - Import - From NIF - import the saved malebody_0.nif, which now only has torsofeathers. Select torsofeathers, click bones, select all bones, delete from shape. Next I turn off textures, switch HIMBO Body to wireframe, and start using Inflate/Deflate and Move brushes to make the feathers better fit the body. Then torsofeathers - copy bone weights. Then Mask Bone Weights, and then again Copy Bone weights, wit ha radius of 7. Add SkirtBBone02 and 03 from Skeleton, weight the Tail to those. Now again, I mask Weighted vertices, press Q so that vertices are highlighted. I see there are a few green dots inside the dody. I just delete those vertices. Then I save the BodySlide project, with similar prameters as the female. Them I select torsofeathers, and go Slider - Conform Selected. Now, I test out various sliders, and see that tail feathers are not responding too well. So I mask just the tail feathers, Invert mask, and then again do Slider- Conform Selected - and increase search radius to 20. Save the project again.
-
In general terms, a 'Light' plugin is one that has all of its internal FormIDs in the 0x00000800 to 0x00000FFF range and an 'ESL' flag in its header. The difference between ESL and ESPFE is literally in the filename extension. (.esl vs .esp) There is no internal difference. The primary difference between them is how they load. A '.esl' is considered a 'light master', and it will load real high, right after the .esm masters, and before any of the regular .esp plugins. Because of this, you can't really use .esl as a patch for other plugins, cause it will load before them. But if you change its extension to .esp, it becomes an 'ESP-FE' plugin, and it can be loaded anywhere in the order, so it can be used as a patch for other plugins. The 800-FFF range means it can has a maximum total of 2048 it own forms. (forms overriding records in its masters don't count) If your mod is dialogue-heavy, chances are it might have more that 2048 own forms, making it unsuitable to be light. But if you do decide to make the mod light.... here's the major problem. First, maybe this is just a feature I missed, maybe it IS there, but in CK, it seems impossible to specify that you want any new FormIDs generated to fall within the "light" range. Even if you are editing a mod already flagged as 'ESL' the new added FormIDs are going to be all over the place. Which means you are adding new FormIDs with whatever values, and then you need to run the FormID compacting. However, the names of voice files are NOT stored in the TopicInfo form - unless explicitly indicated. Voice file names are generated on the fly, in the form of: For regular dialogue: <quest editor ID - up to 10 chars>_<dialogue topic editor ID - up to 15 chars>_<topicInfo FormID without mod index>_<number of response within topic>.fuz, i.e. "freeformsh_ffss02sylgjabra_000e49a8_1.fuz" For scene dialogue: <quest editor ID>_<topicInfo FormID without mod index>_<number of response within topic>.fuz, i.e. "dialoguesolitude_000b2dba_1.fuz" In other words, if you change FormID of a TopicInfo , you also have to rename the corresponding voice file(s) One option would then be to construct all the dialogue structure - branches, scenes, etc - then do FormID compacting, and only then do the actual voice file generation.
-
That file is an empty archive...
-
About function arguments and being optional
scorrp10 replied to csbx's topic in Skyrim's Creation Kit and Modders
Because you hadn't named your TIF scripts, you are setting yourself up for a MASSIVE world of hurt. You might have noticed that under Data, all .pex files go directly under Scripts, with no further subdirectory structure. Which means that scripts with same name will conflict and override. Here is how Creation Kit operates - say you specify Skyrim.esm and Update.esm as your mod masters, those load into CK at index 00 and 01, while YOUR active .esp gets loaded at index 02. Meaning all FormIDs created while working on this mod in CK are going to be 02xxxxxx, i.e. 02000C4A. Of course, into the actual .esp, that FormID is written as 00000C4A, and if your mod in game is actually loaded at say, index 5F, that FormID becomes 5F000C4A. But while in CK, is is 02000C4A. And if it happens to be a TopicInfo, and you attach a script to it, by default that script will be named TIF__02000C4A. And likewise, any other such scripts will be named TIF_02xxxxxx. And guess which 'mod' typically loads at index 02, and has all of its TIF scripts also beginning with TIF__02? Dawnguard. And all of Dawnguard scripts are in Skyrim-Misc.bsa, so you might not even know you have a conflict. Until something starts going horribly wrong in the Dawnguard story line cause your mod scripts in Data/Scipts are overloading those of Dawnguard dialogue. And lets say another modder also creates a mod with dialogue and Skyrim.esm and Update.esm as masters. And also does not rename the TIF scripts, so his mod scripts also follow TIF__02xxxxxx naming. And now they are conflicting with yours, and then people on your mod page are now bombarding you with bug reports, about their quest dialogue going all wonky, like totally unrelated quests advancing stages when you ask Loreius's wife for directions. 700+ mod list attached. That Rename button for script fragments on Dialog Info page is there for a reason. -
I dunno, each time there is just too many things done wrong to even begin fathoming a guess as to what went wrong without seeing the actual files. However, you seem to be confused about weight. There is bone weights where you essentially associate each mesh vertex with one or more bones on the skeleton. Since animations drive the skeleton, bone weights determine how the mesh moves when animated. In this case, 'weight' means distribution. Now the concept of weight in BodySlide is somewhat different. Each slider is a morph, where at 0% it is a base mesh, and at 100% it is distorted in some way. Essentially, slider definitions are such that for a given affected vertex, as slider is moved from 0 to 100, the vertex moves by certain X, Y and Z amounts. Then in BodySlide, you have 'low weight sliders' - those govern which mesh distortions will apply when generating the {mesh}_0.nif file. Likewise, the 'High weight' sliders determine the look of the {mesh}_1.nif file. Then in the game, a weight 0 character utilizes _0.nif mesh, while a weight 100 one utilizes the _1.nif one. Anything in between is a linear interpolation between the two. About OutfitStudio: there are a number of tools to determine which vertices are missing weights and where those are. T = texture toggle is exceedingly handy, especially with darker textures that make it hard to see what is masked and what is not, and what the bone weights are. The eye icons next to meshes. Lets you toggle between visible - non-visible - wireframe. Wireframe is great at examining the 'hidden' mesh portions. Mask weighted vertices in a mesh right-click menu is quite handy in determining what is what. Q - highlights vertices. masked in red, not masked in green. Especially great in conjunction with the wireframe look.
-
It could be a Message form. If you open TesEdit, expand the specific plugin, look for 'Message' category if it has one, and see if the message you want to correct is there. However, those kinds of message boxes are reserved for selections (Yes/No or multiple choice) But yeah, if it is just a message box with an OK button, it is most likely displayed via Debug.MessageBox function. I personally use Vortex for my mod management, and in Vortex, on the Mods page, I can click the dropdown arrow next to Remove button and select Open in File Manager, which will open that mod's staging folder. Which lets me explore the contents of the mod. If most of mod's resources are in a .bsa, then this .bsa contents needs to be extracted. Then you check scripts/source directory (in LE) for the .psc files. If there is scripts directory, but no source under it (no .psc files) it means mod author chose not to include them. You can always use Champolion decompiler if that is the case. Once you do have the .psc files, looks for debug.messagebox in them using something like GrepWin . Once you found the line responsible, and changed it, you need to compile the script. And that can be a challenge onto itself as you then also need source for any classes used by the script you are trying to compile, as well as source for any classes used by those scripts, and thus recursively. Setting up proper script compilation environment can be a doozy. That said, if you tell me exactly which mod and what is the message you want to correct, I might do something about it.
-
Force a bard to sing by script
scorrp10 replied to Tiziano74's topic in Skyrim's Creation Kit and Modders
Umm... this script extends what class and is attached to... what exactly? As you call GetOwningQuest(), I assume this trigger area is loaded into an alias on some quest, and this script extends ReferenceAlias. That said, why are you invoking PlaySongRequest on owning quest? If anything, instead of (GetOwningQuest() as BardSongsScript).PlaySongRequest(Akspeaker,"Any") You should have (BardSongs as BardSongsScript).PlaySongRequest(Akspeaker,"Any") -
About function arguments and being optional
scorrp10 replied to csbx's topic in Skyrim's Creation Kit and Modders
Oh, and on the subject of function chaining... yes, you can do that too. Suppose you got a really massive mod with thousands of scripts, and a TON of them were compiled while the function in question took only 2 parameters. So you have a MyFunction(int A, bool B = false), and a ton of scripts compiled against that signature. And now you want to have a 3-parameter version. So you can do this: Function MyFunction(int A, bool B = false) MyNewFunction(A, B) EndFunction Function MyNewFunction(int A, bool B = false, int C = 0) ... EndFunction And from any new place, you can call MyNewFunction. -
About function arguments and being optional
scorrp10 replied to csbx's topic in Skyrim's Creation Kit and Modders
First off, yes the way you describe it is exactly how you do the optional parameters. MyFunction(int A, bool B = false, int C = 0) - this can be called as MyFunction(5) or MyFunction(5, true) or MyFunction(5, true, 1) Heck you can even make calls like: MyFunction(A = 5, C = 1) For example, there is, in Game.psc: Function DisablePlayerControls(bool abMovement = true, bool abFighting = true, bool abCamSwitch = false, bool abLooking = false, \ bool abSneaking = false, bool abMenu = true, bool abActivate = true, bool abJournalTabs = false, int aiDisablePOVType = 0) native global But in C00VilkasTrainingScript.psc, it is invoked as: Game.DisablePlayerControls(abMovement = false, abMenu = false, abActivate = false, abFighting = true) However, you have to understand that default parameter values are just a coding convenience thing. In order for the called function to work properly, the calling function has to place on the stack ALL of the needed parameters. Which is something that gets taken care of by the compiler. That is, when in the code, There is a call: MyFunction(5), in the compiled version, it is replaced with a binary equivalent of 'MyFunction(5, false, 0)'. Now, if MyFunction used to take only 2 parameters, any code compiled back then will still be placing only 2 parameter values on the stack, instead of the now expected 3. Which will cause issues. What I am getting at, when you change a function signature, you must recompile every single script where that function gets called. Now, if you have been consistent in your script naming, especially diligent about renaming the TopicInfo script fragments, this should be a fairly easy task. For example, if I want to find and recompile all scripts for this mod I been working on: -
No, the OP is clearly asking for a way to delete save games from a game automatically via a script command. No idea why. I personally would be EXCEEDINGLY wary of a mod that has the ability to delete my saves without my explicit request. I would rather myself choose the manner in which I decide which saves are no longer needed and how to delete them.
-
If you look at the meshes (both under ShapeData and built ones) that I shared a few posts up, you will see that all the component BSTriShape's are at the root level. The ones that you uploaded again has that Fahrbod:34 NiNode at root level, and all the feather BSTriShapes are contained under it. So it looks like you overwrote the result I gave you with an earlier .nif of yours. You need to edit the .nif under CalienteTools/BodySlide/ShapeData/FahrNymph in NifScope. Expand SceneRoot Expand Fahrbod:34 Click on torsofeathers, Ctrl+C Click on SceneRoot, Ctrl+V Repeat for arm and arm001 Click on Fahrbod:34, Ctrl+Del Spells - Optimize - Remove Unused Strings Save. After this I recommend again loading it in Outfit Studio, making sure it still looks fine, that sliders work on the feathers. and saving.
-
What's wrong with existing follower frameworks? I am using Amazing Follower Tweaks and it has very easy outfit management. You can stick with just standard outfit, or you can go a bit deeper in and also setup outfits to be worn when at home or in a city.
-
P.S. just realized this is LE forum. Not sure if similar console mod exists for LE, but you could try Mfg Console
-
More informative console Go into Racemenu, set yourself to be the first Nord race. Still in racemenu, open console, click on yourself, so it shows the info in top left. In there, mouse over the race, press Shift to open info about it. If the FormID does not start with 00, you can go into 'Form location Information' to see which esp that race is from. Or, if it does start with 00, you can still go into that category to see if any esp overrides Skyrim.esm for it. Do this for both Nord flavors. For example here, I got an alternate 'Nord DZ' race, which comes from 'COR_AllRace.esp' Also, consider checking if something overloads the vanilla head parts such as 'FemaleHeadNord' or 'MaleHeadNord'