The Oblivion Script Extender, or OBSE for short, is a modder's resource that expands the scripting capabilities of Oblivion. It doesn't make any modifications to Oblivion.exe, TESConstructionSet.exe, or any other files in your Oblivion install, so don't worry about permanent side effects. As of v0017, OBSE requires the 1.2.0.416 version of Oblivion.
https://dl.dropbox.com/u/2584752/obse_0021_beta_2.zip - current beta build, for mod and plugin developers
http://obse.silverlock.org/download/obse_0020.zip - current stable version, recommended for general use
http://obse.silverlock.org/
http://obse.silverlock.org/obse_command_doc.html - newly reformatted documentation
What's new:
Spoiler
0021 beta 2:
-Added a minidump to help with post-mortem debugging
-Fixed issue with RunScriptLine that caused rare CTDs during game initialization
-Fixed issue with the serialization code that caused CTDs when a game session's initial loadgame operation failed
-Fixed issue with RemoveScript that caused a CTD when called on a non-scriptable object
-Fixed issue with ExpressionParser that prevented magic effect script references from being resolved correctly when using the compiler override
-Patched vanilla bug that casued a CTD when an effect-less spell was added to the player using the AddSpell command
-Patched vanilla bug that prevented NPCs from activating containers that had onActivate blocks in their scripts
-Patched vanilla bug that permanently prevented the normal activation of unscripted objects when the Activate command was used on them
-Annealed runtime error notification messages for script errors
-GetGroundSurfaceMaterial
0021 beta:
-SetCombatStylePowerAttackFatigueModMult
-HasTail, GatTailModelPath
-GetLuckModifiedSkill
-sv_ToUpper, sv_ToLower
-SetCellMusicType
-Get/SetSoundAttenuation
-GetStageIDs, GetStageEntries
-Set/UnsetStageText
-SetStageDate
-UpdateContainerMenu, UpdateSpellPurchasemanu
-LinkToDoor
-CopyRace
-SetCreatureType
-DispatchEvent
-Support for user-defined events
-ToggleSkillPerk supports Journeyman and Master Mercantile perks
-OnSoulTrap, OnSaveIni, OnMagicEffectHit2 events
-Pass string variables to vanilla commands using '$quest.stringVar' syntax
-MessageEX takes an optional duration, effective only if MenuQue plugin is running
-ModPCMovementSpeed and ModPlayerSpellEffectiveness accept an optional parameter indicating if their effects should persist in the savegame
-Fix recursive calls to *_NS commands not blocking message spam
-Combat style commands allocate memory for "advanced" settings if not already present
-Made annoying editor warning about unquoted strings/function pointers toggle-able through INI file (in the Data\OBSE folder)
-Plugin API allows authors to optionally avoid dependencies on GameAPI/Utilities header files
-Patch vanilla bug in which RemoveAllItems and GotoJail commands cause equipped quest item enchantments to become permanent
-New loader injection method for the editor
-Fix issue with PluginManager that caused a CTD when a plugin registered a listener inside a dispatch callback
-Updated project to Visual Studio 2010
0020:
-ToggleSkillPerk
-Fix compiler override using localized actor value strings
-Fix IsNthEffectItemScriptHostile returning inconsistent values
-Prevent equipping an item from generating multiple OnActorEquip events
-Prevent power-attacking generating multiple OnAttack events
-Fix GetActiveSpell returning zero if the player has not switched from the default starting spell
-Add compiler override support for script bytecode lengths exceeding 0x4000 bytes when using the CSE OBSE plugin
-Minor documentation fixes
0021 beta 2:
-Added a minidump to help with post-mortem debugging
-Fixed issue with RunScriptLine that caused rare CTDs during game initialization
-Fixed issue with the serialization code that caused CTDs when a game session's initial loadgame operation failed
-Fixed issue with RemoveScript that caused a CTD when called on a non-scriptable object
-Fixed issue with ExpressionParser that prevented magic effect script references from being resolved correctly when using the compiler override
-Patched vanilla bug that casued a CTD when an effect-less spell was added to the player using the AddSpell command
-Patched vanilla bug that prevented NPCs from activating containers that had onActivate blocks in their scripts
-Patched vanilla bug that permanently prevented the normal activation of unscripted objects when the Activate command was used on them
-Annealed runtime error notification messages for script errors
-GetGroundSurfaceMaterial
0021 beta:
-SetCombatStylePowerAttackFatigueModMult
-HasTail, GatTailModelPath
-GetLuckModifiedSkill
-sv_ToUpper, sv_ToLower
-SetCellMusicType
-Get/SetSoundAttenuation
-GetStageIDs, GetStageEntries
-Set/UnsetStageText
-SetStageDate
-UpdateContainerMenu, UpdateSpellPurchasemanu
-LinkToDoor
-CopyRace
-SetCreatureType
-DispatchEvent
-Support for user-defined events
-ToggleSkillPerk supports Journeyman and Master Mercantile perks
-OnSoulTrap, OnSaveIni, OnMagicEffectHit2 events
-Pass string variables to vanilla commands using '$quest.stringVar' syntax
-MessageEX takes an optional duration, effective only if MenuQue plugin is running
-ModPCMovementSpeed and ModPlayerSpellEffectiveness accept an optional parameter indicating if their effects should persist in the savegame
-Fix recursive calls to *_NS commands not blocking message spam
-Combat style commands allocate memory for "advanced" settings if not already present
-Made annoying editor warning about unquoted strings/function pointers toggle-able through INI file (in the Data\OBSE folder)
-Plugin API allows authors to optionally avoid dependencies on GameAPI/Utilities header files
-Patch vanilla bug in which RemoveAllItems and GotoJail commands cause equipped quest item enchantments to become permanent
-New loader injection method for the editor
-Fix issue with PluginManager that caused a CTD when a plugin registered a listener inside a dispatch callback
-Updated project to Visual Studio 2010
0020:
-ToggleSkillPerk
-Fix compiler override using localized actor value strings
-Fix IsNthEffectItemScriptHostile returning inconsistent values
-Prevent equipping an item from generating multiple OnActorEquip events
-Prevent power-attacking generating multiple OnAttack events
-Fix GetActiveSpell returning zero if the player has not switched from the default starting spell
-Add compiler override support for script bytecode lengths exceeding 0x4000 bytes when using the CSE OBSE plugin
-Minor documentation fixes
Readme (abbreviated):
Spoiler
Oblivion Script Extender v0021 beta 2
by Ian Patterson, Stephen Abel, Paul Connelly and Madeesh Kannan
(ianpatt, behippo, scruggsywuggsy the ferret, shadeMe)
Additional contributions from Timeslip, The J, DragoonWraith, SkyRanger-1, badhair, JRoush and kyoma.
The Oblivion Script Extender, or OBSE for short, is a modder's resource that expands the scripting capabilities of Oblivion. It doesn't make any modifications to oblivion.exe, TESConstructionSet.exe, or any other files in your oblivion install, so don't worry about permanent side effects. It is compatible with the 1.2.0.416 Oblivion patch, as well as the 1.2 version of the Construction Set. Versions of Oblivion downloaded via Steam are supported as well.
This release adds:
-Support for user-defined events
-Ability to turn off certain compiler warnings
-Fixes for various vanilla bugs
-New events: OnSoulTrap, OnSaveIni, OnMagicEffectHit2
-Quest stage, combat style and cell related commands
-New loader injection method for the editor
-Misc commands and bug-fixes
[ Installation ]
The instructions for installing and running OBSE differ based on whether you are using a retail or Steam version of the game.
IF YOU PURCHASED A RETAIL (NON-STEAM) VERSION OF OBLIVION:
1. Copy obse_1_2_416.dll, obse_editor_1_2.dll, obse_loader.exe and the Data folder to your Oblivion directory. This is usually in your Program Files folder, and should contain files called "Oblivion.exe" and "OblivionLauncher.exe".
3. Run oblivion by running obse_loader.exe from the Oblivion directory.
If you use a desktop shortcut to launch Oblivion normally, just update the shortcut to point to obse_loader.exe instead of oblivion.exe.
IF YOU ARE USING THE STEAM VERSION OF OBLIVION:
1. Copy obse_1_2_416.dll, obse_editor_1_2.dll, obse_steam_loader.dll and the Data folder to your Oblivion directory. This is usually "C:\Program Files\Valve\Steam\SteamApps\common\oblivion".
2. Ensure you have enabled the Steam community in-game, or OBSE will fail to load. Go to Steam &--#62; Settings &--#62; In-Game and check the box marked "Enable Steam Community In-Game".
3. Launch Oblivion via Steam or by running Oblivion.exe. OBSE will automatically be run along with Oblivion when launched. To disable this, rename or move obse_steam_loader.dll. You do not need to use obse_loader.exe unless you are running the editor.
Scripts written with these new commands must be written via the TESConstructionSet launched with obse_loader. Open a command prompt window, navigate to your oblivion install folder, and type "obse_loader -editor". The normal editor can open plugins with these extended scripts fine, it just can't recompile them and will give errors if you try.
by Ian Patterson, Stephen Abel, Paul Connelly and Madeesh Kannan
(ianpatt, behippo, scruggsywuggsy the ferret, shadeMe)
Additional contributions from Timeslip, The J, DragoonWraith, SkyRanger-1, badhair, JRoush and kyoma.
The Oblivion Script Extender, or OBSE for short, is a modder's resource that expands the scripting capabilities of Oblivion. It doesn't make any modifications to oblivion.exe, TESConstructionSet.exe, or any other files in your oblivion install, so don't worry about permanent side effects. It is compatible with the 1.2.0.416 Oblivion patch, as well as the 1.2 version of the Construction Set. Versions of Oblivion downloaded via Steam are supported as well.
This release adds:
-Support for user-defined events
-Ability to turn off certain compiler warnings
-Fixes for various vanilla bugs
-New events: OnSoulTrap, OnSaveIni, OnMagicEffectHit2
-Quest stage, combat style and cell related commands
-New loader injection method for the editor
-Misc commands and bug-fixes
[ Installation ]
The instructions for installing and running OBSE differ based on whether you are using a retail or Steam version of the game.
IF YOU PURCHASED A RETAIL (NON-STEAM) VERSION OF OBLIVION:
1. Copy obse_1_2_416.dll, obse_editor_1_2.dll, obse_loader.exe and the Data folder to your Oblivion directory. This is usually in your Program Files folder, and should contain files called "Oblivion.exe" and "OblivionLauncher.exe".
3. Run oblivion by running obse_loader.exe from the Oblivion directory.
If you use a desktop shortcut to launch Oblivion normally, just update the shortcut to point to obse_loader.exe instead of oblivion.exe.
IF YOU ARE USING THE STEAM VERSION OF OBLIVION:
1. Copy obse_1_2_416.dll, obse_editor_1_2.dll, obse_steam_loader.dll and the Data folder to your Oblivion directory. This is usually "C:\Program Files\Valve\Steam\SteamApps\common\oblivion".
2. Ensure you have enabled the Steam community in-game, or OBSE will fail to load. Go to Steam &--#62; Settings &--#62; In-Game and check the box marked "Enable Steam Community In-Game".
3. Launch Oblivion via Steam or by running Oblivion.exe. OBSE will automatically be run along with Oblivion when launched. To disable this, rename or move obse_steam_loader.dll. You do not need to use obse_loader.exe unless you are running the editor.
Scripts written with these new commands must be written via the TESConstructionSet launched with obse_loader. Open a command prompt window, navigate to your oblivion install folder, and type "obse_loader -editor". The normal editor can open plugins with these extended scripts fine, it just can't recompile them and will give errors if you try.
For mod developers:
http://home.comcast.net/~scruggsyW/obse/ScriptViewer.zip - View offsets into compiled scripts to help debug errors reported by OBSE at run-time
http://oblivion.nexusmods.com/mods/36370 - An OBSE plugin that fixes bugs in the CS and adds new features to it