EngineBugFixes by Tiawar
Oblivion » Utilities
Added: 18/07/2016 - 06:38PM
Updated: 17/05/2017 - 06:19PM

749 Endorsements

1.6 Latest version

15,854 Unique D/Ls

22,870 Total D/Ls

69,203 Total Views

Uploaded by Tiawar


Last updated at 18:19, 17 May 2017 Uploaded at 18:38, 18 Jul 2016



EngineBugFixes is an OBSE plugin containing bug fixes for the Oblivion game engine.
It distinguishes two types of engine modifications:

1) Fixes    Fixes something that probably everyone would consider a bug.
2) Patches    Changes something that may or may not be considered a bug but which I felt could be improved.

See below for a current list of fixes/patches.
Detailed information about each fix/patch can be found in the readme file.
All fixes and patches can be enabled/disabled separately to ensure maximum compatibility with other OBSE plugins.

1) Extract the files to a temporary location.
2) Copy the files in the Data folder to (install folder)\Oblivion\Data\

1) Delete the files/folders associated with the mod.

To enable a certain fix or patch set its value in the INI file to 1. To disable, set the value to 0.

Source Code

The included source code (separate download) gives you an overview of the locations in the engine that will be patched
as well as a general insight into the patches themselves.
However, it is currently NOT possible to compile the plugin from the code as it is missing the project that recreates
the game engine classes and maps functions to memory addresses.
This project is HUGE and currently not for share (not in a sharable state anyway...).

Patch List

1) InitRendererFix (v1.0)
Fixes a small bug in the renderer initialization code which prevents the game from properly showing an error message box
when you try to start the game with an unsupported screen resolution specified in the INI file.

2) SpeedTreeLoadFix (v1.0)
Fixes missing thread safety in the SpeedTree loading code which causes random CTDs in the wilderness.

3) ShadowCameraFix (v1.0)
Fixes the shadow & self shadow code using outdated camera data when evaluating whether an actor's shadow should be rendered or not.

4) CreatureLightingFix (v1.0)
Fixes GetLightAmount always returning 0 for certain creature types (which affects detection handling).

5) WeaponCollisionFix (v1.0)
Fixes 'floating weapons' problem with some non-standard skeleton NIFs.

6) SexChangeFix (v1.0)
Fixes CTD in 'SexChange' script command when used on an actor who currently has a 3D object.

7) GetAlarmedFix (v1.0)
Fixes CTD in 'GetAlarmed' script command when used on an actor who does not have an AI package.

8) CellDistanceFix (v1.0)
Fixes a small bug in the calculation of an actor's distance to a specific (exterior) cell. This affects path finding and cell scans.

9) FollowerDoubleFaceFix (v1.0)
Fixes the well-known double face/helmet bug when using fast travel with followers.

10) UndeletedRefLoadFix (v1.0)
Fixes a major (but unfortunately not the only) reason for getting CTD on shutdown.
This fix is not needed if you are using plugins like FastExit.

11) DeathItemFix (v1.0)
Fixes a small bug and memory leak in the function that resolves death items.
The bug only occurs when the specified leveled list produces more than one item (which doesn't happen very often).

12) DropItemFix (v1.0)
Fixes CTD when the game tries to add player character ownership to a dropped item with no extra data list.

13) LoadCreatedBaseObjectsFix (v1.0)
This is NOT an engine bug fix but rather an OBSE bug fix which hopefully will become obsolete in the future.
Fixes form IDs in created base objects not getting resolved properly after changing the load order.

14) PlayerDeathCameraFix (v1.1)(v1.3)
Prevents the camera getting stuck on ground level after using the Resurrect command on the player.
Additionally, the LoadGame menu timer is reset so the menu does not pop up immediately the second time the player dies.

15) UseItemAtPackageFix (v1.2)(v1.3)
Fixes UseItemAt AI packages not working properly with certain objects types or only working the first time.

16) Cell3x3LocalMapIconsFix (v1.2)
Fixes icons/markers not showing on local map if an exterior cell with certain map grid x/y coordinates is defined or modified in a non-master file.

17) CellChangeCollidedArrows3DFix (v1.3)
Fixes arrows stuck in the player ending up as a clump on the ground when moving to a cell that is not loaded.

18) ScriptPackageFix (v1.3)
Fixes some problems related to the AddScriptPackage/RemoveScriptPackage script commands. Check the readme file for details.

19) HUDInfoQualityIconFix (v1.3)
Fixes HUD icon for the quality of apparatus type objects not getting shown because of a bug in the code.

20) CreatureBipedObjectFix (v1.4)
Fixes creature's 3D getting duplicated every time the EqipItem script command is used on it with a clothing or armor (except shields) object.

21) DialogueWaitFix (v1.4)
Fixes Dialogue AI package between two NPCs occasionally getting stuck in the Wait procedure.

22) ExteriorCellTempObjectsLoadFix (v1.4)
Fixes cell temporary objects not getting loaded if the defining mod is a master file and not loaded with the same mod index as it had in the editor.

23) BuyItemFromContainerFix (v1.5)
Fixes a bug which prevents NPCs from buying food, etc. from containers owned by merchants. This bug can occasionally lead to CTD,

24) DialogMenuEmptyTopicsFix (v1.5)
Fixes dialog menu topic list staying invisible if dialogue was started while menus were hidden.

25) LoadCellTempDataFix (v1.5)
Fixes modified exterior cells failing to load if an object moved into the cell while the cell was not loaded.

26) RunScriptLineFix (v1.5)
Fixes an OBSE bug which affects script commands 'RunScriptLine' and 'RunBatchScript'.

27) SpellPurchaseCrashFix (v1.6)
Fixes CTD when buying the last spell from a vendor's spell list using the arrow keys on the keyboard.

28) GlobalAnimTimerFix (v1.6)
Regularly resets the global animation timer to avoid problems with non-actor animations after long playing times.
This bug is widely known as the 'A-Bomb' bug.

29) AIPackageScheduleEvaluationFix (v1.6)
Fixes broken AI package schedule evaluation for schedules crossing midnight and schedule durations > 24 hours.
Check the readme file for details and limitations of the new evaluation function.

1) SmallBushBillboadPatch (v1.0)
Lowers the threshold size for distant LOD tree billboards from 200x350 to 10x10. Distant LOD for smaller bushes will become visible.

2) EvaluateEquipmentPatch (v1.0)
Modifies the evaluation hierarchy for equipment slots so that items using multiple slots only get selected by the highest slot in
the hierarchy. Please refer to the readme file for detailed information about what this patch does as well as potential side effects.

3) CombatBlockPatch (v1.3)
Modifies blocking behavior to prevent NPCs from blocking even though nobody is hitting them.

4) FloraOwnershipPatch (v1.4)
Changes flora harvesting so that harvesting owned plants is considered a crime.

5) HavokMovedDataLoadPatch (v1.4)
Prevents loading of HavokMoved data for static objects and non-carryable lights to fix uncontrolled movement occasionally seen with these objects.
Please refer to the readme file for detailed information about what this patch does as well as potential side effects.

6) TerrainLODLoadPatch (v1.4)
Allows LOD mesh and texture files to be named in an alternative, load order independent way to avoid LOD problems with world
spaces defined in master files. For a more detailed explanation please refer to the readme file.

Thanks to the OBSE team for the Oblivion Script Extender.
Thanks to Bethesda for creating Oblivion.
Thanks to TESNexus.com for the a one-stop-shop resource for authors and players.
Thanks to LHammonds for the Readme Generator this file was based on.

This mod is provided as "is".
The author is not responsible for any damage done to your save game, game installation
or even your computer (though such an event happening is highly unlikely).
Use at your own risk.