About this mod
Have an older video card, and Oblivion runs too slowly for you to be effective in battle? Give this a try.
- Permissions and credits
>>>>>>>>>>>>>>>>>>
By...er, me.
This is the end...my only friend, the end~
Newest update:
Combat TLB updated to version 2.5.
No new features. No toggles, anyway. Sorry folks (all two of you).
Versions prior to 2.5 removed from file listing. I'll still answer questions about them, if anyone has one of them and refuses to update, but this marks the end of "official" support for them.
The reasons being that I'm too lazy to keep track of all the various versions of the scripts and pass bugfixes to them, and there's really no reason to use one of them instead of the latest version; even the latest script has no noticeable impact on the CPU, and if my little Pentium M can handle it, whatever you people have can too.
Added two configuration options: "Aggro" triggering and TLL Compatibility mode;
First off, there are now two main scripts to choose from - one is the old version (uses IsWeaponOut for triggering), one is the new version (uses IsInCombat for triggering). The new version makes it so all your favorite toggles can now be triggered by an enemy seeing/hearing you and deciding to make you its lunch. That is, instead of drawing your weapon, simply being seen/heard (anything that would start battle music) will trigger whatever features you have enabled.
This does, of course, kill immersion, since you'll usually get warning that something wants to kill you long before you actually see/hear them. Seriously, the vanilla settings make it seem like your character has ESP or summat...
You can, of course, choose which script you would like to use via the configuration menu. By default, IsWeaponOut is selected. Both scripts will receive any/all updates/bugfixes in the future.
The reason this hasn't been available until now is that I'd originally tried to have the script trigger with IsInCombat...and failed because I was doing it wrong. I just recently thought to try it again (the right way, not the wrong way), and it turns out it works fabulously. And so it's now available d:
TLL has been split into two modes; Normal and Compatibility. Normal is what the old simple mode used to do: it toggles TLL off. Compatibility mode inserts a check that determines whether your character is in an interior cell or not. If they are, TLL isn't toggled on. This should fix the problem with LOD textures appearing in towns after TLL has been toggled on and off inside a building.
Do note that since TLL isn't used in interiors anymore in this mode, larger dungeons will run slower than in Normal mode.
Also on the topic of larger dungeons, using TLB with Compatibility will produce opaque junk in larger dungeons. This is unavoidable, use Normal if you use TLB.
Hybrid Lighting defaults to Compatibility mode. TLB defaults to Normal.
Any of you using the previous version of Combat TLB will be using Normal mode. You'll need to manually switch over to Compatibility if you want to use it.
Other things:
Added a safety that manually removes your weapon when you die if using the IsWeaponOut version of the main script. I didn't realize it during any of my testing (or in my normal playing until a certain point in the game), but the game doesn't make you drop weapons that have sheathes when you die; they stick to your hand and dangle about. The problem with this is that the game still thinks you have your weapon ready, so nothing gets toggled off when you die - if you reload a saved game, everything is still toggled, but all the switches are shut off, so when you draw your weapon everything gets toggled the wrong way, and...well, it's a mess.
Fortunately, OBSE provides the functions I needed to fix this. Your weapon, if it's "sticky", will simply be removed from your character's inventory on death (well, 1 hp). Characters using sheatheless weapons don't have this problem (as they drop the weapon on death 99% of the time) and so will be unaffected.
Slightly reworked TLL toggling. Now, on each run of the script, it will check if Distant Land is on or not and toggle TLL accordingly.
The reason I didn't do it this way from the outset is that I was under the impression that script commands read INI entries directly from the Oblivion.ini file on the hard disk.
I've seen several times since the writing of these scripts that this isn't the case; the INI is loaded into memory, and scripts read from that, meaning the excessive disk read problem I thought existed, doesn't.
I've known about this for a long while now, I just...er...haven't bothered changing it. This makes it so if the player enables TLL and then turns Distant Land off, TLL won't get toggled. Just another redundant safety.
Token script modified with the addition of the IsInCombat method; just as before you couldn't use it if your weapon was out, you now can't use it in combat. This is to prevent switching between the two triggering methods while in combat, which can screw the toggles up.
Fixed a minor text problem in the main menu.
Next update:
I'm actually pretty satisfied with how this mod runs.
If I get around to making another version, it will utilize an INI file and write to it whenever everything is toggled on. One of the scripts will use an OnLoad block, in which the script will check if the player is freshly loading a savegame (first load of that game session). If not, it'll check the ini and, if anything is recorded ON, it will toggle everything off.
Just another safety. I've personally gone and broken something or killed someone I wasn't supposed to and gone "I wonder if I should have done that differently...", reloaded a savegame, and realized that I still had my weapon out and everything's screwed up. This would eliminate that problem.
The mod, and why
>>>>>>>>>>>>>>>>>>
This mod consists of:
- Four (plus one explained below) quest scripts; the initialization script that adds the configuration token to your inventory and sets all the default settings, the main script which runs the show, the configuration script which allows enabling/disabling of various features, and the information script that explains each option.
- An inventory token with an object script on it that, when used, closes the inventory and calls the configuration menu.
- Copious amounts of virtual spackle to make sure everything sticks together. We're talking loads here.
What this mod does:
The main script comes in two versions:
- IsWeaponOut version: the main script monitors your weapon status, to see if it's sheathed or unsheathed.
- When your weapon is unsheathed, the main script uses whichever features you have selected via the configuration menu.
- When you resheathe your weapon, all enabled features will be toggled off, returning your graphics to normal.
OR - IsInCombat version: the main script monitors whether an enemy is actively after you or not. Any situation that would cause combat music to start playing, will trigger the script.
- When triggered, the main script uses whichever features you have selected via the configuration menu.
- Once you are out of combat (when combat music would no longer be playing), all enabled features will be toggled off, returning your graphics to normal.
- The chosen main script runs once per half second, a resolution that makes it both responsive and easy on the CPU.
- The initialization script runs once and shuts itself off.
- The configuration script only runs when called by the token in your inventory, and shuts itself off when done.
- The information script only runs when called by the configuration script, and shuts itself off after its done.
"But Septy, I...I don't really have anything to complain about, there's so many options to choose from now! Ffsgh! *flails*"
I know, right.
Main functions of this mod:
LiteBright rendering essentially shuts off most lighting and transparency in the game temporarily (equivalent to SLP 0010, with a few extras), and turns everything...bright. This takes a fairly massive load off of your video hardware, which in turn generally grants a quite reasonable FPS (frames per second) boost. This makes combat on older video hardware much more possible.
Though it is this mod's namesake, pure TLB is no longer recommended. It makes the game look terrible, and has very bad brightness issues in certain dungeon types (Ayleid-type ruins for example). Hybrid Lighting is recommended instead, as is explained below.
SLP 1110, or "specular lighting off" if you prefer, removes the shine on...pretty much everything. You would seriously be surprised at the extent of which Oblivion uses specular shines. The more obvious ones are things like the shine on armor, weaponry, hair, metal objects...but even things as mundane as wooden flooring, dirt on the ground, sides of houses, etc have specular lighting applied to them. Disabling it takes a moderate amount of load off your video hardware, generally more than enough in interiors for combat, and minimally affects visual quality.
Hybrid Lighting is a mixture of TLB and SLP 1110.
In exterior cells, TLB is used along with SG and TLL (if Distant Land is enabled in your game options and the mod's configuration), providing the significant performance boost needed for such a large area.
In interior cells, SLP 1110 is used to disable specular lighting. This preserves most of the lighting in dungeons and buildings, while generally providing enough performance gains to boost your framerate to a reasonable level.
As said above, this is the preferred mode these days, and is what's set by default when you install the mod or click Initialize in the configuration menu. You're still welcome to use whatever you like, of course.
SetGamma aims to reduce the eyestrain that comes with TLB, by setting the gamma very high (brightness lower) in an attempt to get around the same brightness as normal mode.
ToggleLandLOD shuts off Distant Land temporarily, further increasing performance by a good margin and removing the patches of goo that appear with TLB on.
TLL can be enabled in one of two modes: Normal and Compatibility.
Normal mode simply toggles TLL. Use this if using TLB.
Compatibility mode toggles TLL only when in exterior cells. For some reason, if TLL is toggled on and off in an interior cell in a city, exiting the building will result in LOD textures all over the place until TLL is toggled on and off again. Compatibility mode should avoid this problem, at the expense of slightly lower performance in large dungeons.
There are also currently six optional features you can enable to increase performance further:
Toggle Shadows turns off shadow rendering (actor shadows, self-shadows, tree canopy shadows). It has no effect if used with TLB, since TLB shuts shadows off itself.
ToggleSky does what it says: turns the sky completely off until your weapon is resheathed. I've had mixed results from using this; sometimes it increases performance, sometimes it has no effect. It can't hurt to enable it, since TLB shuts off most of the sky anyway.
Note: makes the sun and its corona bright and square when they're low in the sky. Odd and somewhat blinding, fortunately your eyes should already be adjusted to higher brightness (because sun...daylight...yea...).
ToggleWaterSystem works oddly. You would guess by the name that it completely removes water until toggled back off. You would be wrong; it removes the water texture, ripples, transparency, etc, and turns it flat and colorless, with a bright sheen on it. The look is difficult to convey in words, just check it out for yourself.
It does improve performance when water is nearby and, you guessed it, does nothing if not.
Note: if you move far enough with this toggled that the game has to load more water, it will be forced off and water will start rendering normally again. When you resheathe your weapon, the command is used again; which means if the water has been "normalized", it'll be toggled off again. There's no workaround to this that I can see. If you move even further (enough to load more water), the water will once again revert to normal.
The performance boost is worth the possible annoyance, in my opinion, but it of course depends on your personal preference.
SetClipDist works close to the same as the minimum View Distance slider setting does. Anything beyond the value entered (I used 1700, which is identical to the minimum View Distance) isn't displayed, or even rendered.
This setting is completely separate from your View Distance slider, and is set to -1 when your weapon is resheathed, turning it off.
ToggleGrass turns off all grass until your weapon is resheathed. This gives an unexpectedly large performance increase if you're running with default grass settings and meshes, and a modest increase with low-poly grass meshes installed.
Note: when TG is turned off, grass will not immediately reappear. Don't fret; when you move a few steps, or turn your view a bit, it'll all come back.
ToggleTrees turns off all non-LOD trees until your weapon is resheathed; the only trees that will be displayed are those in the distance (which are actually flat "billboard" trees), assuming TLL isn't on. This gives a larger performance increase, but makes the world ugly and barren. I can't recommend using this unless you need performance that badly.
Note that this is not a magical fix; old hardware is old hardware. If your video hardware runs the game poorly because the amount of triangles per second that your hardware can spit out is being exceeded, the default settings will still help (especially TLL), but it's not going to give you huge boosts. More features can be enabled to help more if you still have too much video lag with the default settings.
In general:
Interiors: large FPS gains, especially in buildings
Exteriors: noticeable, although not massive, gains
Requirements
>>>>>>>>>>>>>>>>>>
Oblivion, patched to 1.416 (I have no way of supporting anything earlier)
Unofficial Oblivion Patch (fixes specular-related crashes, not required if you don't use Hybrid Lighting or specular toggle)
Oblivion Script Extender
Some way to tell what your load order is (personally I use Oblivion Mod Manager)
Fingers
Basic search and
Installation
>>>>>>>>>>>>>>>>>>
Updating from previous versions:
1. Unpack the attached zip file to your Data directory (usually C:\Program Files\Bethesda Softworks\Oblivion\Data).
2. Open your mod management program of choice. Activate Combat TLB.esp.
3. Start Oblivion, and load your game.
4. Bring the configuration menu up and click Initialize.
5. Set your options to what you want them as.
6. Done. Whip your weapon out and smack nuns with it.
(I cannot be held responsible for any divine judgement that might result from performing step 6)
Fresh install:
1. Unpack the attached zip file to your Data directory (usually C:\Program Files\Bethesda Softworks\Oblivion\Data).
2. Open your mod management program of choice. Activate Combat TLB.esp.
3. Start Oblivion, and load your game.
4. Wait for the welcome screen to come up,
4.5. Optionally, use the token in your inventory to enable/disable things or suspend the main script.
5. Done. Pull out your weapon and swing it around like a tuna to make sure everything's working.
Uninstallation
>>>>>>>>>>>>>>>>>>
Theoretically, you can just remove Combat TLB.esp from your load order. I'm not entirely sure how "clean" it is, but I'm 98% sure it won't hurt anything, and it's the quickest way. *shrugs*
1. Load your game.
2. Bring the console up.
3. Type "player.removeitem xx000800 1", again without quotes and xx denoting the mod's position in your load order.
4. Exit the game and deactivate/delete Combat TLB.esp.
Note: Don't uninstall with your weapon out. That's just silly.
Compatibility & Known Bugs
>>>>>>>>>>>>>>>>>>
The esp itself isn't dependent on anything. It's completely standalone and the token uses no inventory icon or world model (this would normally be ill-advised, but I've marked it as Quest so it cannot be dropped). As such, it can go anywhere in your load order and should never conflict with anything.
The script will naturally conflict with anything else that modifies anything that the script does.
Don't load a savegame while your weapon is drawn (if using the IsWeaponOut script) or while in combat (IsInCombat). There's pretty much no way to have the script determine the actual state of toggle-based stuff (shadows, TLB, grass, trees, etc); everything it does is based on switches set both within the script and outside of it (global variables). If you draw your weapon and load a different game, the loaded game will have all its switches set to whatever they were when you saved --- so stuff like TLB, TLL, toggle grass/trees/shadows/etc will still be on, but as far as the script knows everything is off and fine.
In the same vein as above, don't save the game with your weapon drawn (if using IsWeaponOut) or while in combat (IsInCombat). The switch statuses are stored in the savegame, but most of the actual toggle statuses are not. So then you have a situation in the reverse of above; the script thinks you're in combat mode, but the game has no idea, and when you put your weapon away anything toggle-based (80% of the things in the script) will toggle on, leaving you with combat visuals while not in combat mode.
Note however, that you can die in combat and reload your savegame just fine. This is because when you die, you drop your weapon and shield (isweaponout=0), and combat mode is ended because nothing wants to fight with you anymore (isincombat=0). These conditions cause the respective versions of the main script to turn everything off.
Usage, Credits, Etc
>>>>>>>>>>>>>>>>>>
You're free to do whatever you want with this mod and the scripts herein. I'm not entirely sure WHAT else you could possibly want to use them for, but you're free to do so.
I certainly wouldn't mind being credited for writing the original things, though :v
All scripts are fully commented, so if you're wondering how I did something, load it up in the CS and find out.
Big thanks to all the various people who wrote the materials on http://cs.elderscrolls.com, as well as the OBSE team and their awesome script extensions. Without them, these scripts wouldn't exist.
Also thanks to the one person so far (as of Dec 16th) who's actually bothered leaving feedback, helping me track down and kill a couple bugs I hadn't even realized existed.
Gawd, that was long-winded. My fingers are killing me. With their little finger-knives. Geddit.
...
Yea.