FOMODs: The Good, Bad and the Ugly

FOMODs are, depending on the description, either normal mod archives with a fomod directory or the contents of a fomod directory or both. The point of them, originally, was to provide custom installs for mods created for use with Fallout 3 and FOMM, the FallOut Mod Manager.

These are great in theory and even the API, see more on this later, is fairly easy* to use. It does a lot of things such as being able to very easily find and modify a value within the .ini files as well as to copy select files in based on values you provide to the user to choose. 

They require the ability to program in C# a little bit. Very basic fomods could likely be coded by those who don't know how to program coupled with a little luck and several forums' references. Being a programmer myself (albeit mostly in non .NET languages) I wasn't really fazed by the task of writing something in C#. The thing that bothered me was the lack of consistent documentation on how to make this all happen.

This is further more compounded by the fact that some fomod scripting techniques don't work for NMM where they do for FOMM. Remember that the NMM, or Nexus Mod Mananger, is still relatively new and needs some updating to fully and truly replace the wonder of FOMM, the Fallout Mod Manager.

The biggest draw to using the NMM is that you can one-click download and register mods from the website directly into your NMM. Another compounding issue with writing FOMODs that work with the NMM is that most FOMOD example code out there directly reflects Fallout 3 and commands that check versions of the script extenders like FOSE are not well documented for their New Vegas counterparts, a.k.a. NVSE.

Despite all this and a little plagiarism I was finally able to modify Breeze's New Vegas Males' FOMOD script to do what I needed it to for my Further Needs. The reason this is needed for my mod is to enable the correct HUD denoting the Waste and Hygiene monitors on the screen. The locations for these monitors varies if you're using the DarNified UI or the vanilla stock UI. Since I vastly prefer the former but can't expect everybody to be using it as well I must also support the later. 

One addition I'd like to add to my FOMOD script is the ability to extract the main hud file out of the BSA. I'll have to solve this issue before shipping since I am not sure that I'm free to inculde it in my mod given it's part of the files that come with the game (even though other mods do this already). I think I've figured this out... will write a new post once I've verified my technique.

That's all for now. I'll post some screen shots of the FOMOD installer form later.

Grinding through the bugs

Slowly but surely making some headway through the bugs I've been able to find since returning to this project. I think at some point soon I'll break away from bug squashing and implement the FOMOD component. 

The FOMOD is required by the Nexus Mod Manager or the older Fallout Mod Manager tools to install the mod itself. Once this portion is done, I can give the mod to a few people so they can test it and report back any bugs they find. 

Tonight I did some testing around the water bottling menu options and water usage menu options in relation to hygiene and water storage. People need to use water with this mod in order to reduce their negative hygiene ratings. Both hygiene and waste monitors have five levels of effects; six if you count 0 (or completely clean and waste free).

For every 200 points worth of hygiene or waste increase, a level of penalty is incurred. Relieving oneself in public for example would increase the negative hygiene rating (given you're going outside and without any toilets nearby) but would decrease your waste level.

If your waste level is higher than 500, for example, relieving oneself outside is a nastier business and incurs a higher penalty to your hygiene than if your waste level were lower. Time to perform the deed is also depdendent upon waste level.

One bug that was squashed was when going outside instead of with a toilet, levels could reach in excess of 1000 which put the whole hygiene monitor and other scripts in an undefined state. Also, I added some extra logic in place so the script can recover if it has saved values that would put the system in one of these undefined states.

One feature I'm trying to support is the inability to clean oneself using small water sources if hard mode is selected for the mod. The mod supports three levels of difficulty (right now) when trying to reduce negative hygiene. Level one, easy mode, means that water acts normally when used *and* also reduces negative hygiene. Level two, medium mode, means that water can only be used for one or the other. Level three would mean that only large outdoor or bathtub sources of water can be used to reduce negative hygiene. 

This later mode may have to go. We'll have to see. It also conflicts with some of the bottling prefs I wanted to support. Anyhow, time to sleep. 

Weekend Status Update

I spent most of the weekend working on an unrelated project (getting an Amithlon system up and running). However I did manage to get some work in towards my Further Needs post. As stated in my previous post; I removed the Comfort stat from the HUD and all referencing scripts. I also spent some time getting the system working again. 

One of the things you must do (well things you should do anyhow) when writing a mod is removing all the other cool mods that you have installed. Paring everything down to a vanillla system that others might be playing with so you can accurately provide them with a compatible and crash free experience.

On my list of things that I need to finish (that I've not yet done) is further integrate the bottled water experience. Many other mods have a bottled water type setup, but I wanted to make sure that it works with my new hygiene system. 

I also learned about the Mod Configuration Menu system. I'm going to try and integrate with that as well because it looks slick. It won't be required, but will be an optional add on. 

Thats all for now. 

Ditching comfort...

Originally my mod was going to track three separate values; Waste, Hygiene and Comfort. I've decied to drop Comfort. This field really is a combination of the first two. If I restore it later on, it will have different meaning and context. For now, however, it goes the way side.

Further Needs Mod Update

I received an email from PRHMro calling me out on my non-release. My father got sick and passed away last year and in all that I basically stopped working on the mod. I recently have started to get the bug to work on it again. Most of the mechanics are done. If someone would like to alpha test some bits for me I'd be happy to update my non-publicly viewable nexus page for it and get it going.


Things that work

  • Eating and drinking various different types of food and drink will increase the need "to go". 
  • If you ignore the need to go, after a certain period you will strip and go on your own. If this is in the middle of combat, too bad. You will be prone for a semi-random amount of time based on how long you waited and how badly you needed to go
  • Cleanliness meters also work. Using a clean restroom only marginally increases your dirty value, but dirty restrooms or waiting until your forced to go cause major increases in this unclean meter. 
  • Using sinks will cause you to reduce your unclean value
  • Various stages of uncleanliness invoke penalties to your various social skills and attributes
  • Needing to go also invokes some penalties to attributes and skills
  • UI placement of meters in the HUD (for DarnUI and for vanilla UI; could use some slight tweaking)
  • Stripping of clothing and animations to sit on seat toilets

Things that are unfinished

  • Male use of urinals (don't have the necessary animation skills to pull this off); currently they have to sit just like the ladies
  • The ability to strip only the lower part of the players clothing
  • Players will not be nude when sitting on the toilets unless they have a nude skin installed (or until I integrate support with some other skins to swap in/out at the time of usage)
  • Further storyline integration; I want people to not talk to you as much when you're filthy causing the player to go out of their way to get clean. I'd also like vendors to charge more in such cases
  • NMM install script with options
  • Ensuring that 

Things I don't plan on doing

  • Animation actually showing the players producing waste. There is no need for this and would show a level of focus on the part I am not interested in focusing on. Besides, I don't have the animation skill to do this

Further Needs Early Release

So the mod now enforces the player to strip and go if the player's waste level ever reaches maximum. I think, to add an element of surprise, it will have a chance of happening at any point with a higher chance of it happening with each progressive level. This will add an element of surprise. The length of time is greater the higher your waste level.

Once this is hammered out, I need to write a customer FOMOD install script so that it will display the levels on the HUD. I'll follow suit and have it detect other HUD modifications the same way as the primary needs hud FOMOD script works (i.e. detecting DarnUI and what not). I suspect I'll have comfort-less version that people can test up on the nexus by the end of next week.

Been a while since my last post...

Given it's been over a week since my last post I felt you all deserved a look-see as to what was going on. I have almost completed the implementation of being able to "go" anywhere in the wild. For now the player strips and squats; and, no you're not going to see any excrement animations. That's not the point of the mod. The stripping only happens to mark the helplessness of the player in such situations.

Going, when in the wild, incurs a much higher hygiene penalty than going in a restroom. I have some timing issues currently that I am trying to work out and since the player doesn't use an item or piece of furniture the scripts are different than they are when using a toilet. I have also been having some back and forth with the authors of NVSE.

Mostly the delays have been caused by midterms in a Korean class I am taking. I hope to be back into the full swing of things soon. I plan to release the first 2/3 of the mod in a playable form sometime soonish. The final third is the harder part and involves refinements on realism integration and the game mechanics of the comfort stat. That latter part being the hardest by far.

As usual, please comment or get in touch with me if you have any questions, requests or ideas.

Basic Menu Options in Place

If only Arwen would respond to one of my emails. I followed the example set by her. I really do have modder's envy of this girl. I'm very impressed with her work and she's inspired me to do more. Anyhow; I have the basic menu options in place. I followed Arwen's examples and used a menu token and menu item. Currently I have two menu settings in place. One for how to bottle water and another for how water is used in regards to hygiene. Here's how it looks (so far)

Screenshot30
Screenshot33
Screenshot31
Screenshot34


Level tracking

I created some new scripts, base effects and modified existing actor effects so that the other scripts can track the various hygiene and waste poisoning levels. What this lets me do is to make it take varying degrees of time to perform duties such as using the toilet or cleaning up. The next thing on my list that I've been avoiding is menu scripting. It's not so bad but it takes a bit of time to layout since I haven't done it in a while.

The menus I see creating next are

  • Fill, empty and refill bottles with various types of water; i.e. allowing the upgrade of dirty water to pure water for all existing filled bottles if a cleaner source of water is found.
  • Modify all water sources such that when used a menu option will be presented that allows the user to choose whether to consume the water or use it to improve the players hygiene (i.e. clean up).

An even more arduous task is to create the user preferences item as mentioned before. This item will function very similarly to Arwen's prefs items. It allows the user to configure the mod. This needs to happen but shouldn't be too hard once I get my hands dirty with the first set of menus I have planned. Apologize for the lack of updates as I had Korean finals at school this week outside of work which is already busy.

Waste poisoning

Until I have a better name for it, waste poisoning is what happens when you neglect to use the facilities for extended periods of time. It starts off by simply lowering your agility. Subesequent levels lower your ability to perform physical skills such as using guns, fighting, etc... Finally the highest levels, in addition to progressively lowering skills and agility, also lower your overall charisma. Currently that is all that happens but I intend to do one of a couple of things:

  1. Lower the waste level by one or two categories but instantly raise hygiene penalties to their highest level (i.e. you couldn't find a toilet, guess what happens)
  2. Increase the hygiene increments over time significantly
  3. Make the player strip down no matter where they are to squat and relieve themselves. This will be very inconvenient if it happens during battle given the player loses controls during this time frame.

I may come up with something else to add to this or replace it but for now I am play testing the changes.