[RELz] Bare Necessities

Post » Wed Mar 30, 2011 8:21 am

http://www.tesnexus.com/downloads/file.php?id=36795
Requires OBSE v0020+

This mod causes your character to need food and sleep. However, the underlying goal is to make the passage of time feel meaningful, adding a sense of urgency otherwise lacking from Oblivion. The concepts of hunger and exhaustion are a familiar and immersive way to achieve that goal, but Bare Necessities focuses on game mechanics, not simulation.

A brief summary:

NEEDS
  • Hunger and exhaustion add up over time, measured in game hours.
  • A lesser power allows you to check your hunger and exhaustion levels.
  • You'll receive notifications when you're particularly hungry or tired.
  • Sleeping reduces exhaustion and slows the increase of hunger.
  • Eating food reduces hunger, based on how much the food weighs.

PENALTIES
  • Hunger and exhaustion are combined into a single "needs" value.
  • If your needs total gets too high, you begin to suffer Fatigue damage.
  • Initially the rate of damage is very low, and only slows regeneration.
  • Let it go too long, and Fatigue will actually start falling.
  • Once you're reduced to 1 Fatigue, Magicka is damaged... then Health!
  • This mod won't actually kill you. ;)

BareNecessities.ini explains the formulas and allows detailed configuration, including a few options that aren't used by default. If you use TheNiceOne's HUD Status Bars, you'll also find some useful variables listed there. The defaults assume that you are using a mod which makes Fatigue regeneration rates generally lower and/or based on Endurance, such as Realistic Fatigue. Without such a mod, stiffer penalties might be appropriate.

Sleep With No Bed:
To prevent severe annoyance during dungeon excursions, Bare Necessities provides a Lesser Power which allows you to sleep if conditions are right. (This is an integrated and technologically-improved version of my Roughing It mod.) Sleeping this way is significantly less restful than using a real bed!

For those who hate a cluttered spell list, both of the included powers can be deactivated.
User avatar
Kelli Wolfe
 
Posts: 3440
Joined: Thu Aug 23, 2007 7:09 am

Post » Tue Mar 29, 2011 8:02 pm

Hey Tejon, I'm going to try this out.

Would you consider checking out http://www.tesnexus.com/downloads/file.php?id=24079 mod? It includes a pretty ingenious system for thirst that you might be able to use for including it in your mod.

Your mod was recommended to me http://www.gamesas.com/index.php?/topic/1165152-survival-mod-recommendation/page__gopid__17134281#entry17134281
User avatar
Chloe Yarnall
 
Posts: 3461
Joined: Sun Oct 08, 2006 3:26 am

Post » Wed Mar 30, 2011 5:57 am

Heh, this is in the readme but I suppose I should mention it here too: leaving out thirst was a deliberate decision and I have no interest in changing it. In my opinion there is no compelling gameplay value to a thirst mechanic: it's just an extra (and simultaneous!) category of hunger. The technical issues with implementing a good thirst system are only a secondary concern.
User avatar
OTTO
 
Posts: 3367
Joined: Thu May 17, 2007 6:22 pm

Post » Wed Mar 30, 2011 2:10 am

Bump for v1.2: missed a bounds check on hunger; you can no longer eat a hundred pumpkins at once and never be hungry again.
User avatar
Rachel Hall
 
Posts: 3396
Joined: Thu Jun 22, 2006 3:41 pm

Post » Wed Mar 30, 2011 7:04 am

Bump for v1.2: missed a bounds check on hunger; you can no longer eat a hundred pumpkins at once and never be hungry again.

rofl

Thanks for the update!

cc
User avatar
gemma
 
Posts: 3441
Joined: Tue Jul 25, 2006 7:10 am

Post » Wed Mar 30, 2011 1:23 am

; If you use TheNiceOne's HUD Status Bars, the following values may be useful:; BN.exhaustion; BN.hunger; BN.needs              = exhaustion + hunger; BN.fatigueLossRate    \; BN.magickaLossRate     = per second (not including fallout); BN.healthLossRate     /

Quoted from the end of BareNecessities.ini. ;) For pre-supplied bar definitions I'd probably use only BN.hunger and BN.exhaustion.

For setting your min and max, plus maybe some color shifting, you might as well use the threshold variables for the built-in notification system:

set BN.ExhaustionMessageLow                 to  4set BN.ExhaustionMessageHigh                to  16set BN.ExhaustionMessageExtreme             to  36set BN.HungerMessageLow                     to  2set BN.HungerMessageHigh                    to  8set BN.HungerMessageExtreme                 to  36

By default, hunger and fatigue are measured in GameHours. A value of zero means you're fully fed/rested. If it rises above ***High you'll get a message that you should eat or sleep, and if it rises above ***Extreme, you're told that your hunger or exhaustion is unbearable. After sleeping or eating, falling past ***Low gives a message that you're well-rested/well-fed.

There are several potential HUD configurations based on this... hmm. To avoid getting the "hungry" message before the bar's even half empty, I'd probably ignore the Extreme threshold for this purpose and do it something like: hud_max = 0, hud_min = (High * 1.5), color-change at Low and again at High. (Or just at High. There are only so many colors...)

Edit: Hey... is it possible for the min and max values to be dynamic? If so, I'd do min = High until you reach High, then turn the bar a nasty color and switch to min = Extreme. I guess the hud_min line would be:
"((BN.HungerMessageHigh>BN.hunger)*BN.HungerMessageHigh)+((BN.HungerMessageHigh<=BN.hunger)*BN.HungerMessageExtreme)"


Moving this from your general thread - sorry for not aswering earlier, but here is a suggested HSB ini setting, based on your info above. It IS possible for min/max to be dynamic, but it is often a better alternative to split one bar into two bars that share identical positions, but where the color definition contains some test that always makes one of the bars invisible. I did this here.

The first bar is only displayed if hunger <= HungerMessageHigh. The bar is yellow, but I subtract 6 (to make it green) if you're well fed. The bar goes from full when BN.hunger is zero, to empty when it reaches HungerMessageHigh.
The second bar is only displayed if hunger is > HungerMessageHigh, with a red color. It goes from full when hunger is equal to HungerMessageHigh, and becomes empty when reaching HungerMessageExtreme. If you want the bar to go from empty to full instead, just replace "hud_min" by "hud_max" and vice versa. The red bar also has "Hungry" in red letters above the bar. If you don't want the text (or the space it takes), remove the tnoHSB.hud_name lines - or you can move the text to the left/right/below the bar by using the hud_textPos_x and hud_textPos_y settings.

The exhaustion bar(s) work identically to the hunger bar(s)

; Hungerset tnoHSB.hud_color to sv_Construct		"HUDcolorYellow*(BN.hunger <= BN.HungerMessageHigh) - 6*(BN.hunger <= BN.HungerMessageLow)"		set tnoHSB.hud_val to sv_Construct	 		"BN.hunger"set tnoHSB.hud_min to sv_Construct			"BN.HungerMessageHigh"set tnoHSB.hud_name to sv_Construct			" "	; Just to make space for the text when hungrySetStage tnoHSB 10set tnoHSB.hud_color to sv_Construct		"HUDcolorRed*(BN.hunger > BN.HungerMessageHigh)"		set tnoHSB.hud_val to sv_Construct	 		"BN.HungerMessageHigh"set tnoHSB.hud_min to sv_Construct			"BN.HungerMessageExtreme"set tnoHSB.hud_max to sv_Construct			"BN.HungerMessageHigh"set tnoHSB.hud_y to							HUDprevBar ; Makes the second bar have the same pos as the firstset tnoHSB.hud_name to sv_Construct			"Hungry"	; Makes it display "Hungry above the bar"!SetStage tnoHSB 10; Exhaustionset tnoHSB.hud_color to sv_Construct		"HUDcolorYellow*(BN.exhaustion <= BN.ExhaustionMessageHigh) - 6*(BN.hunger <= BN.exhaustionMessageLow)"		set tnoHSB.hud_val to sv_Construct	 		"BN.exhaustion"set tnoHSB.hud_min to sv_Construct			"BN.ExhaustionMessageHigh"set tnoHSB.hud_name to sv_Construct			" "	; Just to make space for the text when exhaustedSetStage tnoHSB 10set tnoHSB.hud_color to sv_Construct		"HUDcolorRed*(BN.exhaustion > BN.ExhaustionMessageHigh)"		set tnoHSB.hud_val to sv_Construct	 		"BN.ExhaustionMessageHigh"set tnoHSB.hud_min to sv_Construct			"BN.ExhaustionMessageExtreme"set tnoHSB.hud_max to sv_Construct			"BN.ExhaustionMessageHigh"set tnoHSB.hud_y to							HUDprevBar ; Makes the second bar have the same pos as the firstset tnoHSB.hud_name to sv_Construct			"Exhausted"	; Makes it display "Exhausted above the bar"!SetStage tnoHSB 10


I haven't tested this, but would very much appreciate if some user of Bare Necessities and HUD Status Bars could test it out and report back :)
User avatar
Sheila Esmailka
 
Posts: 3404
Joined: Wed Aug 22, 2007 2:31 am

Post » Wed Mar 30, 2011 7:32 am

I'm actually very curious about one thing...

Has anyone ever implemented a limit to how much you can eat? I.e., if you eat a pumpkin, you are unable to eat another, and foods that weigh more are more filling, etc...

Also: Bookmarked, since I want to get an Oblivion re-play experience as close as possible to Ultima Underworld.
User avatar
Alexandra Louise Taylor
 
Posts: 3449
Joined: Mon Aug 07, 2006 1:48 pm

Post » Wed Mar 30, 2011 6:13 am

Has anyone ever implemented a limit to how much you can eat? I.e., if you eat a pumpkin, you are unable to eat another, and foods that weigh more are more filling, etc...

The weight of a food item already determines how much sustenance you get, but I don't believe it's possible (without a binary hack, anyway) to prevent the player from eating. However, Bare Necessities doesn't allow your hunger to go below zero; so eating too much is wasteful, at least.
User avatar
CHangohh BOyy
 
Posts: 3462
Joined: Mon Aug 20, 2007 12:12 pm

Post » Wed Mar 30, 2011 3:11 am

Think I will be giving this mod a try. Thank tejon!
User avatar
Charleigh Anderson
 
Posts: 3398
Joined: Fri Feb 02, 2007 5:17 am

Post » Tue Mar 29, 2011 7:49 pm

Looks like a good mod is it compatible with COBL ingrediants?
User avatar
danni Marchant
 
Posts: 3420
Joined: Sat Oct 07, 2006 2:32 am

Post » Wed Mar 30, 2011 6:31 am

BN is compatible with any ingredients mod that makes use of the "Food" checkbox in the CS. Pretty sure COBL does. Note that there's no built-in support for the COBL dinner plate, and at present none is planned; but the ingredients should be fine, you just have to eat them the normal way.
User avatar
Rodney C
 
Posts: 3520
Joined: Sat Aug 18, 2007 12:54 am

Post » Tue Mar 29, 2011 11:21 pm

Just starting to play again after 3 or 4 months (hi folks!) and noticed this while updating all my old plugins.

So, what do I do with TFE to make it dovetail nicely with BN?
User avatar
willow
 
Posts: 3414
Joined: Wed Jul 26, 2006 9:43 pm

Post » Tue Mar 29, 2011 8:42 pm

This mod replaces TFE and Roughing It.
User avatar
CSar L
 
Posts: 3404
Joined: Fri Nov 09, 2007 9:36 pm

Post » Tue Mar 29, 2011 7:58 pm

This mod replaces TFE and Roughing It.

I believe it only replaces the needs aspect of TFE. It doesn't seem to affect fatigue the way TFE does/can.

I think this is the required edit to TFE.ini:
set tfe.bHunger        to  0 ; was 1set tfe.bExhaustion    to  0 ; was 1

User avatar
Red Sauce
 
Posts: 3431
Joined: Fri Aug 04, 2006 1:35 pm


Return to IV - Oblivion