Jump to content

Creating my first mod


MommySimmer

Recommended Posts

Hi, I'm Jessica, and this is my first post here, as well as my first attempt at mod creation for Skyrim.

 

Introduction over, so I'll get straight to it.

 

First, I do know that the Drink, Eat, Sleep, Bathe mod exists. I'll get that out of the way now.

 

The thing is, I've tried a lot of needs mods, and I now use iNeed. I love it and would rather not switch to a new one. I would just like the add the getting dirty/needing to bathe part. I also love how it decreases speechcraft if you are dirty.

 

So I want to try my hand at creating a mod just for the getting dirty/bathing need, that works with Skyrim and the DLC. (I have the legendary edition) But I was hoping that someone could give me a few tips on how to manage this? Or direct me to a tutorial/video that would help.

 

Or is this too big of a goal for a first try? Should I try something smaller first? Or just give up and wait for someone else to do it? Would it be simpler to edit the previously mentioned mod to my liking (for personal use only, of course.)?

 

Also, if I create my own, as opposed to editing the other mod, I don't plan to copy anything from the DESB mod, but I doubt this would be a mod I'd make public anyway.

 

So, anybody care to help, or point me to some help? :D

 

Thanks so so much in advance.

Link to comment
Share on other sites

Well, I honestly could probably open that mod and figure out wth it is doing and how and why etc and create one.

 

Do you have any prior experience in any modding or programming or the like?

 

Otherwise it may be a bit annoying to work on. If I had to guess it's probably heavily scripted with alias' that point to the player etc and diff conditions.

 

If you have never touched the CK before that would probably be a very very bad idea of something to get started on. It really isn't that hard but I've been doing this for years so it's a skewed POV on my end. The problem is after years I still am slamming my head into walls on some things and bug testing and dealing with the CK's finnickyness will cause you to probably quit in the first few days if you aim too high.

 

I'll point ya at my thread for tutorials, I try to keep it easy to understand

http://forums.nexusmods.com/index.php?/topic/1912704-easy-tutorials-for-the-ck-it-aint-that-complicated/

 

There are also some other videos that are not on there on my youtube page where I explain discworld porting and cell building and camera controls and the like.

GL with it, for sure, but try not to go crazy on your first try at anything, I burnt myself out in under 2 months the first time and didn't pick it back up for about 8 after. Now I am 7 months deep in a immense project and even now I still have to take a few days breather all the time when I do hardcore bug tests :)

Link to comment
Share on other sites

Thanks for the reply! I have done some modding with The Sims 2 & 3, but I believe it's quite different.

 

I downloaded the loose files for the drink, eat, sleep, bathe mod. After just one look, I was totally lost. :D Plus, the patches for dragonborn and hearthfires are seperate downloads with just a single .esp. Hmmm, perhaps I should work my way up to editing a mod this complex.

 

So far it's all greek to me. I think I'll follow some tutes on how to create something small and simple in game, to get a feel for CK, and eventually be able to do something like that.

 

(Or maybe someone else will create one before I ever work up to it. Lol.)

 

Again, thanks for replying. :D

Edited by MommySimmer
Link to comment
Share on other sites

Yes, I would concur that doing a mechanics changing mod for your first go would be very difficult without prior experience in the area. I was a fairly heavy script modder during Oblivion and when I hopped over to start making mods here for Skyrim and began my massive project 4 months ago, there was a pretty significant period of learning and frustration but over 4 months I've managed to be able to figure out how to do most things or at least find the answers for them.

 

I would say get your feet wet by creating a small quest which includes an NPC quest giver, a couple quest alias' for the goals of the quest and some lines of dialog. Try and work some sort of multiple stages with some simple fragment scripts that do things like enable/disable relevant objects, etc. This will give you a good feeling for how scripts work in and out of quests and how quests work for both "Player missions" and as system handlers. as an example, I use a quest as a "handler" for a container script which looks at a form list for specific books and then looks at the comparable item number from that list on another list to enable the display static reference, and it was pretty complicated to figure out how to call one function from one script into another... not to mention that script syntax inside of quest fragments and dialog fragments and stand alone scripts are all slightly different and I still can't wrap my head around it sometimes :P

 

So yes, not to deter you, but what you propose is fairly daunting, but not undoable. The simplest way I could see would be to have a quest handler script running all the time which basically refreshes every say 24 hours and each 24 hours adds an extra point to a global value (your filth level) and then you also could have a player alias script attached in the same quest which ticks another global value up each time you are injured significantly (i.e. getting all bloody) or even have one for dealing damage in melee, one which ticks up faster when you are running and getting sweaty, and then each 24 hour "refresh" of the main script it looks at each of the other globals and does a little math to see how much extra to tick the overall filth meter. then you could also have the same player alias script check for when you are under water and have it remove some of the filth counters. Then at the end of the overall filth meter check you have the effects of what happens to you when you are at X filth or Y filth or Z filth, etc. Could even have a dialog topic that covers all NPC's in the game which is a block topic so they won't say anything else to you but that topic which is some "oh by the nine, you stick!" and never help you til you bathe lol :)

 

so yeah it's doable :)

Link to comment
Share on other sites

Thanks! I do really really like the ideas you proposed! Still sounds uber complicated to someone who hasn't made a single mod, but I like how you laid everything out.

 

Once I figure some things out by trial and error of making other mods with CK, maybe I'll try something similar to that. Give it a test, learn some more, then maybe try to add a menu in the MCM, maybe some dirty textures, depending on what your dirty level is. (I was thinking, Squeaky Clean, Slightly Fresh, Grungy, Filthy for the levels)

 

I have a question, in frostfall you have a power (survival skills) and can use it to do multiple things, how difficult is it to do something like that, just a simple one to do while standing in or near water and give you the options: "Freshen up" (for a one level boost in hygiene, ie from filthy to grungy, grungy to slightly fresh, etc.) and "Bathe until clean" (For a total boost back to squeaky clean)?

 

I don't know that I'll try it now, but it would be nice to have the ideas all in place for whenever I do decide to give it a go.

Link to comment
Share on other sites

doing the special ability to wash up and having the condition of "being close to water" should be simple enough but the tricky thing would be to determine what things are water. There should be some conditional states that determine you are UNDER water because that triggers your breath meter and then causes you to drown, but being close to water is much more difficult I would think. You'd essentially need to make a form list with every single water object in the game, which is easy enough actually, it's just a drag and drop thing. Then you would have the special ability coded to check and see if you are within say 10 distance or 25 distance or some small distance from an object on that list. Probably would have to use dynamically acquired quest aliases using two hand off quests; basically you have one quest start up, check for the nearest reference of a water item on the list, start the second quest which fills that reference as the object having the distance checked against, and then the quest terminates and the original one gets an update call that makes is start over again. Essentially endlessly starting and stopping the quest every couple seconds so that it constantly is checking for what the closest water source is. I use something similar to select shrines to have an effect occur when the shrine is activated, but without actually having to edit the shrine to give it that script, because I am adversely opposed to editing vanilla resources, so I make every effort I can to make changes to them dynamically during the game, that way my mod won't overwrite someone else's and someone else's irresponsible or uninformed edit of an object won't mess my mod up.

 

I would say to start out in modding land in general, I give this advice:

 

1- The modding system is "over write priority" based, which means that only 1 mod can effect any given item in the base game. So if I edit the damage on the mace of molag bal in my mod, and you change which model it uses or change the enchantment shader color, with your mod and load it after mine, then your change is the only one that occurs. This is why there are BASH and LOOT and SkyRe etc etc, to merge multiple edits of object types into one patch that applies them all at the end. This is why learning is soooo important so that you can learn how to dynamically alter game content without actually changing any base objects.

2- you can ADD as much as you want to cells, but as soon as you CHANGE something that was already there, you could have potential conflicts (see rule #1)

3- Get TES5Edit and learn how to do a basic mod cleaning. This removes all those accidental movement edits that happen all the time when you are navigating around in the render window and selecting stuff to copy and use in your own dungeon. You see a cool setup of ruins and go "oh that's cool, I think I'll use those as a base and add some stuff to it for my dungeon entrance" and you click on stuff and copy and paste and go about your merry way, but you accidentally nudged something over a little. That's called a "dirty edit" and TES5Edit is perfect for removing those unintentional edits

 

Those would be the big 3 for me, but I guess I could go on and on for awhile :P

 

I used to do a pretty involved Oblivion mod and came into Skyrim pretty cold and had a hard time wrapping my head around scripting but after 4 months of almost constant working on my project, I've got a good arsenal of tools to work with and I know the terminology to ask the right questions when I have no idea what I'm doing wrong, that's the hardest part I think, is figuring out WHAT to ask at first

 

If you need any pointers or have any questions, feel free to PM me, I'm on all the time off and on during the day

Link to comment
Share on other sites

Well I'm definitely set on two of those things. I already use LOOT and TES5Edit. :D I have a lot of mods and didn't want to fiddle with load order manually, and I knew the original game files needed cleaned with TES5Edit from Gopher's videos.

 

And I haven't edited any existing cells in the game. I did create my own dungeon (Loosely Following the tutorial on the creation kit site) and I have it with no weird seams or glitches, it's connected to the mountain across from Riverview (3. -11--ish). On the interior there are three main chambers, though one is behind a secret cave door (Which has activators on both sides.) and there is lighting as well. My next step is going to be adding enemies (not sure which ones.) Then create an NPC who is outside the dungeon, where she had been living until she was chased out by the enemies. So that will lead into some Quest scripting. And since it will be at an early part of the game, I'm thinking the reward will be some gold and survival items. (Food, Wine, maybe an inexpensive sword and shield.)

 

 

Anywho. Lol. Got a little off topic. I uninstalled iNeed and installed the Drink, Eat, Sleep, Bathe mod, hoping to basically pick it apart in CK and see what the bathing part did. But my game kept crashing about every other time I loaded. (On startup, I didn't even get a chance to load a save or start a new one.) Once I removed it I had no issues. Who knows.

 

I've been doing some reading and youtube watching on scripting and I'm thinking that at least to start I'll tie the bathing option/power to work only when the player is swimming. But the questions I'm running into here are, how do I get the game to check for how long has passed since the player was swimming or last bathed? How do I get it to drop hygiene quicker when fighting or sprinting? How to get it to affect speechcraft depending on your hygiene?

 

When I do start attempting it, I think to start I'll tie it to a book, though I'm not sure how to script it to give the player the book upon the first load of the mod, without having to add item through the console.

 

 

Basically, I'm trying to piece together things from here and there, because there is obviously no tut out there for a needs mod. :D Thanks for the friend request, btw! Anytime you have pointers to give, or a suggestion, feel free to lay them on me. I'm on here off and on as well, so anytime works for me!

Link to comment
Share on other sites

well keeping track of time is pretty easy and there are a number of ways to do it. The way to think of scripts is this: scripts on objects, people, etc, only really come into play when their event occurs "OnActivate", "OnCellAttach" "OnDeath" are some examples, but quest scripts essentially run the entire time the quest is active, so having scripts run on a quest is a great way to handle many special systems. You just set up the quest as a "Begin on startup" quest and make sure you use TES5Edit to create an SEQ file and time you add new quests, especially ones which are start game active, otherwise they won't function.

 

You could use a "RegisterForUpdateGameTime(24)" function which will "update" every 24 hours of game world time and then have "OnUpdateGameTime()" as the event which triggers. Under that you could set a global variable with MyGlobal.Setvalue(MyGlobal.GetValue +1) which sets the global to whatever it currently is at +1, assuming my syntax is right, I may be missing something but you get the idea. Then you'd add another registerforupdategametime function to essentially make it do the code again in 24 hours. Inside this OnUpdate block you would have some "IF" condition checks to see what the value of the global variable is like "If MyGlobal.GetValue() == 10" and then follow with a SetAV function to set the actor value of their speechcraft skill to it's current level - whatever penalty you want (in similar fashion to the algebraic Global value check and boost function I showed above, just with setav and getav instead)

 

The blood dirtying you up thing is a bit more involved but basically comes down to a script that is slapped on the player by the quest by way of adding the player as a reference alias. Then while the quest is running the player will have a script attached to them essentially. That script would then have a OnHit (I think) event that then alters the dirty global. Course I'm sure there are a lot of variables that could work, like checking actual health levels which would be prefered, but you get the idea.

 

back to your dungeon experiment; did you remember to NavMesh? :) always a thorn in our sides to be sure.

 

I would just go to the creation kit site and look through the list of Ppayrus commands so you can see what kind of event triggers are possible.

 

Main thing to remember which took me awhile to figure out with scripting is that Papyrus has no clue what ANYTHING in the game is, so you have to define pretty much everything for it by way of setting up lists of properties, so if you wanna have a script add a item to the player you have to set up an actor property for the player and a appropriate item property for the item (like Armor or MiscObject or Potion, etc)

 

ex: Actor Property PlayerRef Auto

Armor Property CoolHat Auto

 

then you'd use PlayerRef as the target of the action and the CoolHat as the object you are using. Then after the script is done you have to use the property button to tell Papyrus what those properties actually are linking to by selecting player as the PlayerRef and whatever armor piece you want "Coolhat" to be. I was in the Oblivion mode where you had to basically write in the objectID in each script and didn't have to define properties, but properties are actually really cool because now you don't have to re-write scripts that get used by more than one thing in different ways, you just re-define the property after adding the script to the item. I use a script on every "quest achievement display" I have in my museum which when the cell loads each time, it checks to see if X quest is done, and if so it enables Y display object and previously in oblivion you would have to essentially copy and edit the code for each item.

 

Anyhoo now I'm rambling.

Link to comment
Share on other sites

Navmesh...Welllllllll. It seems to be the bane of my existence. I've been saving, then going in game to test anytime I do anything to it, and so far haven't had any issues with (going to use the term I use when referring to Sims 3) routing except for outside around the stairs. There are two areas that I can't go up the stairs for some reason. The inside doesn't have any clutter, and I haven't finished adding rubble, so I haven't really messed with navmesh in there yet. But every time I tried to edit the exterior navmesh to cover the whole of the stairs leading to the door, without messing up any of the navmesh for the surrounding area, I keep ending up with the navmesh raised up really high in some places, so I then have to cancel without saving (I always save before I even think about attempting it) and then go back in to try again. (Or better yet, do something else. So grrrr. I'll figure it out once I play around with it some more. Right now I'm banging my head against a wall basically.

 

 

Onto the scripting: I hate to admit it, but a lot of it sounds Greek to me. :( I'm still reading through a lot of the wiki, trying to learn the basics of papyrus. I have currently managed to have a statue in game that, upon activating it, tells you (via a message box) that you need to bathe, the second time, tells you something different, something different for the third, and from the fourth time onwards, just says LALALALALA! I'm not listening! So I'm working my way up there. I've got a .txt file that I'm writing out what I want to do with the hygiene mod in, but I haven't tackled any actual scripting yet. I figure it's better to wait until I know what I'm doing before I attempt that.

 

One thing- If I'm keeping track of the time elapsed since the player last went swimming (I think I've decided to start off with just the swimming aspect of it, try to get the basics of the mod in game and working, then see about adding a power with the option to bathe or freshen up when in the water.) will this value get reset every time the game is opened? Or will it still track the value since the last swim, even if it was the previous time the game was open?

 

(Not sure if that made any sense. I'm trying to wrap my head around it. I feel like there's something I'm missing when I try to grasp how it works. I'll be darned if I'll be defeated by a fracking scripting language though. I've always considered myself tech savvy. I learn CSS and HTML with relative ease, though it's been a while since I used either and probably wouldn't know what was what anymore, but looking at this, I think I overestimated my tech-intelligence!)

 

On the NPC I'll be adding to the dungeon.

 

I want to have her originally standing outside the dungeon, ready to ask the player to clear out a warlock who has run her out of her home. So a quest, lol. (And yes, I do know I'll have to record dialogue. I'll work up to it! :D ) The player accepts, heads inside, kills the warlock (and any lackeys I may add with the warlock later) and when I come back out, she gives me a key that opens the inner chambers- which are at the end of a secret hallway, behind a locked door.

 

In there are the real rewards. She'll tell me, when she hands over the key, to check a chest next to the fireplace and take anything I want from it as a reward. Inside is some basic armor, food and ale, some arrows and gold. Nothing to expensive, it's right outside riverwood, so It's kind of meant to be a beginning thing to obtain some basic survival items. I added the food and ale in since I use the needs mods. --And now that I think of it, a cheap cloak to help with cold would be a good addition.--

 

Here is what I'm stumbling on. Once the quest is complete, I'd like to have her go inside to her chambers once the warlock is dead and her home is safe. But not until the quest is complete! I'd also like her to move around, eat, sleep, etc etc, inside her chambers once she is allowed back in. Just how difficult is this part going to be? Any tips on this?

Link to comment
Share on other sites

Navmesh: are the stairs blocking YOU or blocking npc's ? Because navmesh is irrelevant for the player. If you can't get up the stairs either the step is too high or the collision bounds of objects around are blocking it. On the ck menu look for view collision geometry to see what's blocking it

 

If navmesh gets messed up just select the vertex mode and just move the very ice like any object, hitting w will also toggle between view modes so you can see it over the objects or through the objects or just the nav mesh with no objects. Meshing multiple floors is tricky because you end up sticking things to the wrong level by accident a lot, just make sure that you finalize with all door markers touching part of your mesh so npc's can use the doors. Exterior you also have to make nav mesh butt up right against the free lines of other cells of the exterior, and then finalize so patching can occur across the cells

 

As far as the swim counter/timer, all values are always saved in the save game unless told to reset or are reinitalized deliberately through code using OnInit functions.

 

As far as the npc it's fairly easy but takes a little practice and used AI packages. You basically give a default package called a "sandbox" package which let's then do random stuff in their environment bd have it be the last on the package list for them. Then above it you have a package that says to sandbox inside within a certain range of an object and have the condition be that the quest is completed. Then load it at the top of your so package list. They are assessed top down, so anything that had tight constraints should be first and if they aren't met they are skipped and the next is checked. Once it reaches a package whose conditions pass as true the npc will continue to do it forever until the condition is false, or an AI pack listed above it becomes true. Quest stages are the most common condition check

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...