Oblivion

File information

Last updated

Original upload

Created by

AkhraGee

Uploaded by

AkhraGee

Virus scan

Safe to use

Documentation

Readme

View as plain text

FUNDAMENT
===============
req. OBSE 0020+
- by tej�n


Revision 04, Update 03 - by migck
----------------------
At its most basic, Fundament.esm is a generalized replacement for countless
small mods, including its predecessor, Progress. Through simple initialization
files the user can edit skill advancement rates, game settings, and even
Oblivion.ini settings (without any permanent changes to Oblivion.ini itself).
Fundament edits only what you specify in the initialization file: anything you
leave out isn't touched. If Fundament.ini is empty, absolutely nothing happens
in-game; it's like the mod isn't installed. Furthermore, each character can
have their own unique configuration which overrides or adds to global settings.

Fundament comes with a collection of scripts which change various aspects of
gameplay. These are collected into a single mod, Bundlement.esp, but each
individual feature can still be enabled or disabled separately. As with the
rest of Fundament, everything is disabled by default. Details and documentation
are provided in the configuration files, but here's a quick summary:

--- Global Rate Control
Base skill slowdown and training cost control, with change-over-time options.
--- Magic Prices
Adjusts gold prices for enchanting, spellmaking and spell purchase.
--- Racial Talents
Skills with a racial bonus also get improved advancement rates.
--- Variable Advancement: Armorer
Rate of Armorer advancement depends on amount repaired per swing.
--- Variable Advancement: Marksman
Gains are dependent on target's range; bonus for sneak attacks.
--- Variable Advancement: Melee
Slower weapons give more skill; bonus for power attacks and sneak attacks.
--- Variable Advancement: Mercantile
Rates vary with trade value and vendor's skill; get skill for buying spells.
--- Variable Advancement: Spells
Per-effect gains; gains on-cast; magicka-based, range-based, and more!


Under the Hood
--------------
Fundament is also a modder's toolkit, and while the long description of its
features won't interest most users, the purpose behind them should. Without
getting into too much detail, the Oblivion engine doesn't expect many of its
internal numbers to change during gameplay. When they released the game, that
was fine: there was no way to change them! But OBSE made it possible, and there
are side effects. Put simply, once one script changes a number, no other script
can know what it originally was... and not even that same script, if you load a
saved game! Temporary, situational numbers can easily be mistaken for base
values, and lunacy ensues.

Fundament-based mods suffer no such issues. They can freely apply separate
modifiers to the same settings, and Fundament sorts it all out. Any time you
load a game or quit to the main menu, it resets everything so there's no danger
of bleed-over. All of this is done with user functions that are generally more
convenient to use than the raw OBSE commands they replace, and even mods which
don't have Fundament.esm as a master can make changes to its records through
special features of the initialization system.

Finally, Fundament incorporates Formulator, a self-managing CloneForm database.
This tool greatly simplifies the task of avoiding bloat in mods that make heavy
use of CloneForms.


Compatibility
-------------
Fundament is compatible with absolutely everything, although some things are
not compatible with Fundament. Basically, older mods making changes to settings
controlled by Fundament will still be unaware that they're reading altered
values. However, Fundament initializes before older mods (I can say this with
absolute certainty) so it will still have good records of anything you've
configured it to control, and the base values read in by other mods will be the
correct ones that you've set. (In fact, it records initial skill use values
even if you haven't changed any, and resets them between loads as described
above, which can actually improve the behavior of some mods!)

There's one other caveat: Fundament does not actively enforce its values during
gameplay. This is deliberate and generally a good thing, but it does mean that
if an older mod makes a lot of changes after Fundament initializes, that mod
gets priority. What this means in practice is that there's no point using
Fundament to control the same base settings as another script-based mod. The
general rule is that if a mod has an .ini file and lets you edit game settings
there, and that mod is not based on Fundament, it's going to take precedence.

A few popular examples:
- Progress, which edits skill advancement rates and some related game settings
(Fundament is intended to replace this, but they can technically coexist);
- ABO's Realistic Fatigue and my own Fatigue Effects, which both edit several
game settings related to fatigue;
- Supreme Magicka, which edits magicka-related game settings.

Note: Fundament is inherently compatible with Nehrim, and total conversions in
general. However, its supplied defaults are specific to Oblivion.


Installation
------------
Wrye Bash will correctly install Fundament from the archive file, and it can be
converted to an OMOD for use with OBMM. To install manually, simply extract the
archive to your Oblivion\Data\ directory. You should then have Fundament.esm
and Bundlement.esp in Oblivion\Data\, and several configuration files in
Oblivion\Data\Ini\. Enable Fundament.esm, and optionally enable Bundlement.esp.

After launching Oblivion, shortly upon reaching the main menu you should hear a
"Whoosh" sound and see the message "Fundament Established." (This notification
can be configured in FundamentGlobal.ini.) Fundament is now installed and
functional, but not actually doing anything. If you only installed it because
another mod requires it, that's OK: there's no need to use its other features.
For full instructions on how to activate and use the various features of
Fundament and Bundlement, see the configuration files.


Removal
-------
By itself, Fundament makes no persistent changes and can be safely removed at
any time. The same applies to Bundlement. However, if you use other mods which
require Fundament, they may have more detailed removal instructions. You must
remove all dependent mods before you can safely disable Fundament.esm.


Special Thanks
--------------
- The OBSE team, without whom we'd still make mods by banging rocks together.
- TheNiceOne, whose HUD Status Bars configuration system was the final piece I
needed to finally make this idea work.
- shadeMe, for an ever-growing selection of tools that make my job easier.
- Shikishima, who holds down the fort during my frequent vacations.
- Lilith and TESAlliance for dragging my attention back to Oblivion once again.
- Bethesda Softworks. Y'know.


Version History
---------------
Revisions (R numbers) make changes to the API. Dependent mods may require a
particular revision. In some cases, such changes may break compatibility with
older dependent mods; this will be noted below.

Updates (U numbers) are irrelevant to dependent mods. They contain only bug
fixes, Bundlement feature updates, etc.

R04 U03 - Changed the method used to detect the chargen class ('classless' player),
now checks against game settings instead of class name.

R04 U02 - Corrected mercantile experience gain from buying spells in VA: Mercantile.
Corrected the functions for calculating luck-modified skills.

R04 U01 - Handled an unanticipated negative value in fdGetPlayerUnmodifiedAV,
which caused permanent Light effects to play havoc with nGCD.

R04 U00 - MAY BREAK COMPATIBILITY (but probably only with nGCD 3.0 - 3.2)
Corrected a negation error in fdGetPlayerUnmodifiedAV.

R03 U01 - fd.version was still returning 2. Whoops! Corrected to 3.
Bundlement now ensures its version is not greater than Fundament's.
VA:Spells was choking on telekinesis, fixed. New initialization
parameters added to handle this, check the .ini for details.
Useful sample configuration lines added to the end of Fundament.ini,
uncomment to enable.
R03 U00 - Fixed several key string functions in Formulator.
Added function: fdSetMGEFNoHitEffectThisFrame

R02 U00 - MAY BREAK COMPATIBILITY
Changes to OBSE plugin flagging and version checking.

R01 U06 - Magic Prices scripts no longer create equip noises during menus.
R01 U05 - Several additional data validity checks within Formulator.
Changed default skill scaling for VA:Mercantile.
R01 U04 - Same thing, seven lines down. Long night...
R01 U03 - Fixed a bad array index in VA:Spells.
R01 U02 - Eliminated potential divide-by-zero in AVUncapper compatibility code.
Fixed GRC curve setting variables (were int, should be float).
New GRC option: Eliminate class/spec/misc skill rate differences.
R01 U01 - Fix a botched last-minute optimization. Minor documentation edits.
R01 U00 - Initial Release


Contact
-------
Bug reports should be made in the current thread on the Bethesda forums.
Send any Paypal donations or scathing hate mail to [email protected].