doulingo Posted January 4, 2020 Posted January 4, 2020 I've started to investigate a few things in SL/SSE modding over the past days, but I think I really miss some general idea - and possibly just need a quick way to start to actually do something. Sadly there are a few questionmarks about "how to approach things", will be thankful for any hint. 1) psc dependencies So I found out that I can put various psc files to the Data\source\scripts folder, and compile certain scripts via the creation kit - if all of the dependencies are there (which is a surprising hassle). Now I completely lack the picture how soft dependencies are realized - in my example I tried to look at SL Survival (SE) and start to change a few things, to get the idea and possibly make a dependend mod. But SLS scripts have so many references to stuff I want to skip (I stopped when I was looking at DDI and especially Zad errors) - and according to the post they are only soft dependencies. How would we handle creating/compiling scripts with soft dependencies (let's say so massive/error prone that there is no point in trying to get all the psc files)? 2) Inspecting mods and how they do things It would be helpful (or even necessary) to understand how other mods are doing things. I found that using SEEEdit, I can kind of diff what an esp does, but surprisingly it didn't help me at all to reconstruct what is happening, and how I could do similar things in my own mod. What is the strategy to follow other modders paths? 3) Environment setup (with things like Vortex or whatever) How do you setup SSE for mod development; do you use organizers (and if so where do you edit files), do you run only a minimal configuration with your mod + dependencies for the time? So far (for scripting) I've just pasted the psc files to the SSE data folder, but in a way I think this is a horrible idea. That vortex staging also makes things very intransparent and cumbersome. And once we have a mod, where do we do the work? Does it have to live in the SSE folder (which may cause being overwritten by vortex), or the vortex staging (which possibly cannot be seen by dev tools)? 4) Scripting vs. esp edits Is there any comprehensive top-level guide/tutorial explaining the concept how scripts and ingame mechanics interact? So far I only found isolated hello-world-like tutorials, so yes I can do a simple quest/dialog, or run a simple debug line script - but how do they connect? (ofc. is related to question 2) thx for any input
Fotogen Posted January 4, 2020 Posted January 4, 2020 I use Notepad++ for psc editing. CK has option to "Edit script in external editor". In my case, *.psc extension is linked to Notepad++. There are tutorials and extra plugins(syntax coloring, how to compile psc) for Notepad++. Do a quick google and you'll find it. I do alot, I mean really alot, of manual backups of Skyrim. I don't use Mod Manages to install mods. I do use Wrye Smash for "load order" management. I started with manual install, because I wanted to learn how stuff works. What does this button do, whats with that files and so on. Plus, while there are some good mods, there are also lots of "dirty" one. Mods that have files that are not suppose to be in the mod. Like skeleton or a mesh that mod author put there by mistake. Other questions: thats a bit complex. You have an example?
doulingo Posted January 5, 2020 Author Posted January 5, 2020 4 hours ago, Fotogen said: I use Notepad++ for psc editing. CK has option to "Edit script in external editor". In my case, *.psc extension is linked to Notepad++. There are tutorials and extra plugins(syntax coloring, how to compile psc) for Notepad++. Do a quick google and you'll find it. I do alot, I mean really alot, of manual backups of Skyrim. I don't use Mod Manages to install mods. I do use Wrye Smash for "load order" management. I started with manual install, because I wanted to learn how stuff works. What does this button do, whats with that files and so on. Plus, while there are some good mods, there are also lots of "dirty" one. Mods that have files that are not suppose to be in the mod. Like skeleton or a mesh that mod author put there by mistake. Ok thank you very much, that already gives me a feeling where this is heading. Not familiar with Wryre Smash (Bash?) yet, I'll have a shot. It sounds like a way to just have everything needed in the Data folder, with a way to handle what is overwriting what? np++ is my weapon of choice, though I'll need the highlighting plugin. Quote Other questions: thats a bit complex. You have an example? For 1): I'm running SL: Survival, iNeed, Bodysearch and Devious Followers with all hard dependencies. My playground should be to understand how certain things work, and possibly find ways to fix or extend stuff I see - for example I'm interested in how the animations and actors are selected; for instance I'd like to have more control about the animation tags selected (without re-tagging 500 animations), or fix the actor assignment for the female/female begging scene (where Dom/Sub are swapped). For the latter I've done some reading SL and SLS code, and found that Function StartSexOralFemale(Actor akSpeaker, Bool IsBegging = true, Bool DecWillIncFame = true, Actor Victim = none, Int TeleportType = 0) [...] sslBaseAnimation[] animations = SexLab.GetAnimationsByTags(2, animationTags, TagSuppress = supressTags) actor[] sexActors = new actor[2] SexActors[0] = PlayerRef SexActors[1] = akSpeaker [...] Sexlab.StartSex(sexActors, animations, Victim) Should be responsible and I just need to do some logging here to get an idea of how this works. Problem: Changing the SLS_Main.psc gives me a cascade of work to do; even hours later I didn't get it done. First I need to have all the scripts from hard dependencies in the Data\source\scripts folder (like skse, skyUI sdk, and ofc. the mods I used) - which is fine. Then just following the compile errors, it gets worse and worse: Sexual Fame Slaverun Manual Strip EEF Frostfall Milk Addict (opening up an even bigger dependency tree of Milk Mod Economy, Inflation Framework, Soulgems - many mods I've never even heard of and isn't trivial to guess what this could be) Somewhere in the MA dependencies I stopped and instead started to edit the SL:Survival pscs to get rid of dependencies I didn't even use. Looking back I think I should have done mocks for files I don't have, and run them as a simple psc-only mod on my side. Is this some wrong thinking of mine, as the SLS mod authors would of course have all the soft dependencies installed while development? For 2) Same example; I tried to understand how this Function is linked in the mod. What I could recreate in SSEEdit is that there are "Dialog Topics" ending in "_SLS_BeggingDegradationAccept" which has a "Script Fragements" FileName "TIF__050201B3" - which again is something in my psc files simply wrapping that call: Scriptname TIF__050201B3 Extends TopicInfo Hidden ;BEGIN FRAGMENT Fragment_0 Function Fragment_0(ObjectReference akSpeakerRef) Actor akSpeaker = akSpeakerRef as Actor ;BEGIN CODE Main.StartSexOralFemale(akSpeaker, IsBegging = true, DecWillIncFame = true, Victim = none, TeleportType = 0) ;END CODE EndFunction ;END FRAGMENT ;END FRAGMENT CODE - Do not edit anything between this and the begin comment SLS_Main Property Main Auto Is this *the* one way how dialogs/quests interact with scripts? And is it possible to edit/override stuff that happens in this .esp by another mod? Let's say if I want to extend or remove lines, or change parameters. From my layman understanding, it should be possible to have my own mod overwriting just the TIF__050201B3.pex to get the behaviour changed (though it had to depend on SLS_Main and therefore I'd need 1) solved), but I'm not so sure about the .esp parts.
Fotogen Posted January 5, 2020 Posted January 5, 2020 Quote Somewhere in the MA dependencies I stopped and instead started to edit the SL:Survival pscs to get rid of dependencies I didn't even use. Looking back I think I should have done mocks for files I don't have, and run them as a simple psc-only mod on my side. Is this some wrong thinking of mine, as the SLS mod authors would of course have all the soft dependencies installed while development? Yes. If mod has "soft" dependencies, author still needed all the stuff installed. Sucks, but that how it is. Remove code you don't want? Yes. Thats how its done. Create a blank, fake, mock-up psc? Even better. It even means, if you decide to install new version of original mode, you don't have to tweak the mod again. Note: - don't redistribute changed original code. Copyright violation. Only with original authors permission - but I think new blank/mockup dependancy psc is not copyright violation. Quote Is this *the* one way how dialogs/quests interact with scripts? And is it possible to edit/override stuff that happens in this .esp by another mod? Let's say if I want to extend or remove lines, or change parameters. From my layman understanding, it should be possible to have my own mod overwriting just the TIF__050201B3.pex to get the behaviour changed (though it had to depend on SLS_Main and therefore I'd need 1) solved), but I'm not so sure about the .esp parts. Yes. But open the mod (esp) in CK. "Fragment" is a CK term for a small piece of code that gets called when: - you click something in dialog (that Topic is like one of dialog topics) - a scene starts or ends or ... - quest starts or changes stage or ... - ... list is very long Example: - this page: https://www.creationkit.com/index.php?title=Bethesda_Tutorial_Dialogue - scroll a bit down until you see "Topic Infos" - on picture you can see (just above OK and Cancel) "Scripts", Begin: Papyrus Fragment and End: Papyrus Fragment - thats "fragment"
doulingo Posted January 5, 2020 Author Posted January 5, 2020 8 minutes ago, Fotogen said: Create a blank, fake, mock-up psc? Even better. It even means, if you decide to install new version of original mode, you don't have to tweak the mod again. Thx. Not the answer I hoped for, but at least I can stop investigating my options Quote Yes. But open the mod (esp) in CK. From what I understood so far is that if I open "my esp" (as active file) and apply any changes on the master plugins, the content of my esp is basically the difference? So if I remove something, my mod would contain the removal, for example of a simple dialog branch, right? Going further this should mean editing the fragment scripts should replace them by a new one, which I'm free to edit in my mod, and would overwrite the behaviour? If so, that may be a neat way to inject stuff. Anyways thanks for the help, you can't imagine how useful it is to get a few things confirmed (there is so much more to think about, and tbh. the enviroment and especially CK has to be some punishment for eating babies in a former life)
Recommended Posts
Archived
This topic is now archived and is closed to further replies.