EngineBugFixes by Tiawar
Oblivion » Utilities
Added: 18/07/2016 - 06:38PM
Updated: 11/10/2017 - 12:26PM

912 Endorsements

1.7 Latest version

21,270 Unique D/Ls

30,695 Total D/Ls

86,580 Total Views

Uploaded by Tiawar


Last updated at 12:26, 11 Oct 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) Fix    Fixes something that probably everyone would consider a bug.
2) Patch    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) ShutdownCTDFix (v1.0)(v1.7)
This is now a collection fix for various problems that may cause CTD when quitting the game. Check readme file for details.
NOTE: The collection currently fixes some but not (yet) all reasons for CTD on shutdown.

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) CreatureBipedObjectEquipFix (v1.4)(v1.7)
Fixes creature's 3D getting duplicated every time the EquipItem 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.

30) AcquireWeaponNoAmmoFix (v1.7)
Fixes a (rare) bug causing actors in combat to get stuck in the Acquire maneuver if the combat AI chooses ranged melee strategy
but the actor currently does not have ammo equipped.

31) BloodDecalMemLeakFix (v1.7)
Fixes a severe memory leak in blood decal generation code if ini setting 'bDecalsOnSkinnedGeometry' is set to 0.

32) BowAndTorch3DFix (v1.7)
Fixes CTD caused by torch 3D accidently getting attached to the back weapon node in some cases if an actor has both a bow and a torch.

33) PickupItemOwnershipFix (v1.7)
Fixes two bugs related to picking up dropped ingredient items.

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.

7) DialogConditionsEvalPatch (v1.7)
Prevents unexpected behavior in dialog topic item condition evaluation when the topic item's parent quest's condition list ends
with a condition that has the OR flag set.

8) PluginLoadErrorMessageBoxPatch (v1.7)
Shows a message box when the game CTDs on startup because of a missing master file. The message tells you the name of the plugin
that caused the CTD and the master file that is missing.

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.