OBSE Change Log



0001Edit

first release

Simple proof of concept demo.

0002Edit

first useful commands

Implemented GetNumItems, GetInventoryType and IsKeyPressed.

  1. dynamic_cast support
  2. form access (no data yet)
  3. extra data list access
  4. more virtual functions documented
  5. class hiearchy
  6. minor code reorg
  7. extra data types
  8. container access
  9. variable name cleanup
  10. input commands
  11. inventory commands

0003Edit

GetEquipmentSlotType. determining how inventory items are stored along with their extra data

Implemented GetEquipmentSlotType. Fixed floating point return types for all functions. Considered an alpha release candidate.

  1. fix script result type
  2. pad opcodes out to 1400
  3. get equipment command

0004Edit

PrintToConsole, Get/SetActiveSpell, GetParentCell, math functions, alpha release

Implemented PrintToConsole, Get/SetActiveSpell, GetParentCell, several math functions. Alpha release version, OK to use in released mods.

  1. all RTTI structures
  2. many form structures defined
  3. testing dynamic form creation
  4. improve dll loader sync for editor
  5. added Utilities file with analysis utils

0005Edit

fixing math functions, DirectInput, GetOBSEVersion, console commands

  1. converted to VS2005
  2. compiles under VS Express
  3. add timeslip's math fns, rename old fns
  4. add many new CRCs
  5. more form structures, a few game objects also
  6. update rand function to use mersenne twister
  7. add DirectInput hooking functions, disallow modification of ESC and ` keys

0006Edit

Item Value functions, Item type functions, Class functions, HasSpell, ModActorValue2

  1. more form structures and class decoding
  2. fix bug with GetEquippedObject not returning an object that is damaged where another non-damaged object is the the inventory.

0007Edit

GetOV Values: QuestItem, Poison, Food, unofficial oldblivion support, editor font changes

  1. fix bug with GetOV ArmorType
  2. fix bug with IngredientItem decoding affecting GetOV weight and value
  3. integrate changes from Timeslip
  4. reimplement editor font changing code so it works on win2k, add font picker dialog

0008Edit

GetEquippedObjectValue, GetEquippedCurrentValue, GetMagicItemValue, GetMagicEffectValue, GetMagicEffectCodeValue, MagicItemHasEffect, MagicItemHasEffectCode, GetNumMouseButtonsPressed, GetMouseButtonPress.

  1. added Enchantment value to the Object Value functions to return a ref to any enchantment on an object
  2. fix bug where equipment functions didn't manage rings correctly. The ring slots now return whatever ring is worn on that side, regardless of the form's declaration as a left or right ring slot.
  3. fix bug with signed mouse movement
  4. fix fake mouse keycode

0009Edit

Individual GetValue functions, Set/ModValue functions, Beta Flow Control functions, new HTML command documentation

  1. adds 114 functions: 70 provide completely new functionality
  2. fix bug looping over magic effects
  3. fix bug in GetMIV Poison to accurately return if the object is poison or not

0009aEdit

Bugfix release, fixes flow control functions and a potential SetModel crash

0009bEdit

Compatibility with patch 1.2

0009cEdit

Compatibility with CS 1.2

0009dEdit

Compatibility with CS 1.2.0.404

0009eEdit

Compatibility with patch 1.2.0.416

0010Edit

Magic effect, book, model path manipulation, more console commands, menu input functions, math functions

  1. update game setting/ini file functions to work with unsigned and boolean types
  2. buffered input functions, useful for menus or other text input
  3. fix some potential thread-safety issues
  4. patch the RefID wraparound bug in 1.1.511 and 1.2.214 (note that the number will keep going up, but with OBSE installed it will wrap from 0xFFFFFFFF to 0xFF000000 properly)
  5. fix Is* functions, allow passing arguments that are not considered 'inventory items'
  6. replace local magic effect list with access to oblivion's internal list
  7. actually seed the random number generator (doh)
  8. fix internal access to form list for 1.2.214
  9. calculate fps via average frametime (calculated via GetTickCount) over 20 frames
  10. log version of OBSE, version of Oblivion in obse.log
  11. change resource version number to 0.0.10.1 to allow for more precision when releasing intermediate versions without ticking the major version number
  12. include NSIS script for modders that want an installer

0011Edit

Skill experience functions, AddFullEffectItem, RunBatchScript, global collision setting functions, more console commands, ModName and AppendName and several defect fixes

  1. fixes GetBaseObject
  2. IsArmor, IsBook, IsContainer and IsSoulGem no longer require the passed object ID
  3. CopyAllEffectItems, CopyNthEffectItem and RemoveNthEffectItem no longer need a cloned form as a target
  4. Adds con_SaveINI, con_QuitGame and con_TGM

0012Edit

Official plugin support, race attribute and skill functions, some climate and weather functions, enable effect item functions for ScriptEffects, add SetNthEIScript and SetNthEIScriptName, enable GetSpellCount and GetNthSpell for NPC references, Get/SetSpellExplodesWithNoTarget, GetScript, RemoveScript, SetScript.

Bug fixes:

  1. GetBaseObject now works when called without a reference

0013Edit

New Functions

  • climate manipulation functions
  • new easier-to-use input functions
  • active magic effect manipulation and querying functions
  • plugin querying API
  • cell water level functions
  • leveled list functions
  • weather manipulation functions
  • get/set travel horse
  • get/set open key
  • get creature reach, soul level and base scale
  • set/copy hair and eyes (changes not saved on NPCs)
  • get owner, get owning faction required rank
  • get parent cell owner, get parent cell owner faction required rank
  • get/set container respawns (changes not saved)
  • IsLoadDoor, GetLinkedDoor, GetTeleportCell
  • RefreshControlMap
  • GetFirstRef, GetNextRef, GetNumRefs

0015Edit

  • Plugin serialization API
  • Projectile Functions
  • Versions of functions such as AddItem which don't generate UI messages when called on the player
  • Functions returning information about the active mod list
  • Sound functions for objects and creatures
  • Functions returning information about an NPC's hair and eyes
  • ToggleCreatureModel
  • Functions to access variables in external scripts by name
  • Functions to test the validity of reference variables
  • SetMessageSound/Icon
  • GetFullGoldValue
  • Hotkey functions
  • Detection state functions
  • Functions to get and set services offered by NPCs including training
  • Functions to iterate over an actor's AI packages
  • Animation-related functions for actors
  • Functions to return information about an actor's Havok state
  • GetGodMode
  • CompareScripts
  • Leveled list functions
  • Input functions are now synced with Oblivion control bindings
  • Get/SetSpellHostile
  • Functions to determine if a file path is valid
  • Functions to return information about the player's level-up progress
  • Functions returning information about active UI menus
  • SetControl/SetAltControl
  • Improved Vista compatibility

0015aEdit

Bugfix update

  • Fix crash when biped model path functions called on an object for which the specified model is not defined
  • Update GetMagicProjectileSpell to return staff enchantment for projectiles fired from a staff
  • Fix incorrect return value for GetPluginVersion when specified plugin is not installed
  • Plugin manager now offers some protection against misbehaving plugins

0016Edit

  • Updated plugin API
  • Miscellaneous bug fixes and tweaks
  • New string variable datatype and associated commands
  • Debug mode output for scripts
  • Text input capabilities
  • Spell effectiveness modifier commands
  • Mapmarker commands
  • UI manipulation commands
  • Rudimentary script error logging
  • Projectile commands
  • Various other miscellaneous commands
New commands
  • SetDebugMode
  • DebugPrint
  • RunScriptLine
  • ResetAllVariables
  • GetFirstRefInCell
  • GetNumRefsInCell
  • OpenTextInput
  • UpdateTextInput
  • GetInputText
  • CloseTextInput
  • IsTextInputInUse
  • InsertInInputText
  • GetTextInputControlPressed
  • SetRaceAlias
  • SetRaceVoice
  • SetRacePlayable
  • GetSpellEffectiveness
  • ModPCSpellEffectiveness
  • GetPCSpellEffectivenessModifier
  • GetIngredient
  • GetIngredientChance
  • SetIngredient
  • SetIngredientChance
  • GetFormFromMod
  • ToggleFirstPerson
  • sv_Construct
  • sv_Destruct
  • sv_Length
  • sv_Compare
  • sv_Find
  • sv_Count
  • sv_Replace
  • sv_Erase
  • sv_GetChar
  • sv_Substring
  • sv_ToNumeric
  • sv_Insert
  • CharToAscii
  • IsLetter
  • IsUpper
  • IsDigit
  • IsPrintable
  • IsPunctuation
  • GetName
  • GetModelPath
  • GetIconPath
  • GetBipedModelPath
  • GetBipedIconPath
  • GetNthModName
  • GetStringGameSetting
  • GetNthFactionRankName
  • GetNthEffectItemScriptName
  • SetModelPathEX
  • SetIconPathEX
  • SetBipedModelPathEX
  • SetBipedIconPathEX
  • SetStringGameSettingEX
  • SetNthFactionRankNameEX
  • SetNthEffectItemScriptNameEX
  • ToggleFirstPerson
  • GetHidesRings
  • SetHidesRings
  • GetHidesAmulet
  • SetHidesAmulet
  • IsMapMarkerVisible
  • SetMapMarkerVisible
  • CanTravelToMapMarker
  • SetCanTravelToMapMarker
  • GetMapMarkerType
  • SetMapMarkerType
  • GetCursorPos
  • IsFlora
  • SetPCMajorSkillUps
  • SetPCAttributeBonus
  • con_Show1stPerson
  • GetMenuFloatValue
  • GetMenuStringValue
  • SetMenuFloatValue
  • SetMenuStringValue
  • SetProjectileSource
  • SetArrowProjectileEnchantment
  • SetArrowProjectileBowEnchantment
  • SetArrowProjectilePoison
  • GetProjectileSpeed
  • GetProjectileDistanceTraveled
  • GetProjectileLifetime
  • SetProjectileSpeed
  • ToUpper
  • ToLower
  • SetButtonPressed
  • SetBaseForm
  • GetBipedSlotMask
  • SetBipedSlotMask
  • GetLastEnchantedItem
  • GetLastCreatedSpell
  • GetNumExplicitRefs
  • GetNthExplicitRef
  • GetActiveUIComponentName
  • GetActiveUIComponentFullName
  • GetActiveUIComponentID
  • ClickMenuButton
  • GetProjectile
  • RemoveNthLevItem
  • GetLevItemIndexByLevel
  • GetLevItemIndexByForm
  • GetLastCreatedPotion
  • GetLastUniqueCreatedPotion
  • IsConsoleOpen
  • GetBookText
  • GetMenuHasTrait
  • SetChanceNone
  • sv_Set
  • IsControl
  • SetIsControl
  • DeleteFromInputText
  • MoveTextInputCursor
  • LoadGameEx
  • GetPCTrainingSessionsUsed
  • SetPCTrainingSessionsUsed
  • GetStringIniSetting
  • SetStringIniSetting


0017Edit

  • Array variables
  • ForEach and While loops
  • A new expression syntax supporting array and string variables as basic datatypes, complex expressions, and a richer set of operators.
  • Effect setting functions
  • Combat style functions
  • Activate2
  • GetCurrentRegion
  • Functions to detect if keys or controls have been disabled via script
  • GetEquippedItems, GetItems, GetSpells, GetFollowers
  • IsRefDeleted
  • Functions to manipulate Greater Powers
  • Various bug-fixes and miscellaneous functions
New commands
  • CanUsePower
  • SetCanUsePower
  • GetUsedPowers
  • SetPowerTimer
  • ar_First
  • ar_Last
  • ar_Next
  • ar_Prev
  • ar_Keys
  • ar_HasKey
  • ar_BadStringIndex
  • ar_BadNumericIndex
  • ar_Copy
  • ar_Null
  • ar_DeepCopy
  • ActorValueToStringC
  • GetKeyName
  • AsciiToChar
  • GetFormIDString
  • NumToHex
  • DeleteReference
  • IsOblivionGate
  • Let
  • Eval
  • TestExpr
  • While
  • ForEach
  • Loop
  • Continue
  • Break
  • ToString
  • Print
  • TypeOf
  • ar_Construct
  • ar_Destruct
  • ar_Size
  • ar_Dump
  • ar_DumpID
  • ar_Erase
  • ar_Find
  • ar_Sort
  • ar_SortAlpha
  • IsKeyDisabled
  • IsControlDisabled
  • GetFollowers
  • GetCurrentRegion
  • Activate2
  • GetEquippedItems
  • GetBaseItems
  • GetItems
  • GetSpells
  • GetNthEffectItemName
  • ActorValueToString
  • GetParentWorldSpace
  • GetEditorID
  • MatchPotion
  • MagicEffectFromCode
  • MagicEffectFromChars
  • IncrementPlayerSkillUseC
  • GetSkillUseIncrementC
  • SetSkillUseIncrementC
  • SetCellWaterHeight
  • DispelNthActiveEffect
  • IsRefDeleted
  • ModPCMovementSpeed
  • GetPCMovementSpeedModifier
  • IsRacePlayable
  • IsGameMessageBox
  • GetMessageBoxType
  • GetTileChildren
  • GetTileTraits
  • PrintTileInfo
  • GetMagicEffectName
  • GetMagicEffectNameC
  • GetMagicEffectHitShader
  • GetMagicEffectHitShaderC
  • GetMagicEffectEnchantShader
  • GetMagicEffectEnchantShaderC
  • GetMagicEffectLight
  • GetMagicEffectLightC
  • GetMagicEffectCastingSound
  • GetMagicEffectCastingSoundC
  • GetMagicEffectBoltSound
  • GetMagicEffectBoltSoundC
  • GetMagicEffectHitSound
  • GetMagicEffectHitSoundC
  • GetMagicEffectAreaSound
  • GetMagicEffectAreaSoundC
  • GetMagicEffectNumCounters
  • GetMagicEffectNumCountersC
  • GetMagicEffectResistValue
  • GetMagicEffectResistValueC
  • GetNthMagicEffectCounter
  • GetNthMagicEffectCounterC
  • GetMagicEffectCounters
  • GetMagicEffectCountersC
  • GetMagicEffectIcon
  • GetMagicEffectIconC
  • GetMagicEffectModel
  • GetMagicEffectModelC
  • SetMagicEffectIsHostile
  • SetMagicEffectIsHostileC
  • SetMagicEffectCanRecover
  • SetMagicEffectCanRecoverC
  • SetMagicEffectIsDetrimental
  • SetMagicEffectIsDetrimentalC
  • SetMagicEffectMagnitudePercent
  • SetMagicEffectMagnitudePercentC
  • SetMagicEffectOnSelfAllowed
  • SetMagicEffectOnSelfAllowedC
  • SetMagicEffectOnTouchAllowed
  • SetMagicEffectOnTouchAllowedC
  • SetMagicEffectOnTargetAllowed
  • SetMagicEffectOnTargetAllowedC
  • SetMagicEffectNoDuration
  • SetMagicEffectNoDurationC
  • SetMagicEffectNoMagnitude
  • SetMagicEffectNoMagnitudeC
  • SetMagicEffectNoArea
  • SetMagicEffectNoAreaC
  • SetMagicEffectFXPersists
  • SetMagicEffectFXPersistsC
  • SetMagicEffectForSpellmaking
  • SetMagicEffectForSpellmakingC
  • SetMagicEffectForEnchanting
  • SetMagicEffectForEnchantingC
  • SetMagicEffectNoIngredient
  • SetMagicEffectNoIngredientC
  • SetMagicEffectUsesWeapon
  • SetMagicEffectUsesWeaponC
  • SetMagicEffectUsesArmor
  • SetMagicEffectUsesArmorC
  • SetMagicEffectUsesCreature
  • SetMagicEffectUsesCreatureC
  • SetMagicEffectUsesSkill
  • SetMagicEffectUsesSkillC
  • SetMagicEffectUsesAttribute
  • SetMagicEffectUsesAttributeC
  • SetMagicEffectUsesActorValue
  • SetMagicEffectUsesActorValueC
  • SetMagicEffectNoHitEffect
  • SetMagicEffectNoHitEffectC
  • SetMagicEffectName
  • SetMagicEffectNameC
  • SetMagicEffectSchool
  • SetMagicEffectSchoolC
  • SetMagicEffectBaseCost
  • SetMagicEffectBaseCostC
  • SetMagicEffectResistValue
  • SetMagicEffectResistValueC
  • SetMagicEffectIcon
  • SetMagicEffectIconC
  • SetMagicEffectCastingSound
  • SetMagicEffectCastingSoundC
  • SetMagicEffectBoltSound
  • SetMagicEffectBoltSoundC
  • SetMagicEffectHitSound
  • SetMagicEffectHitSoundC
  • SetMagicEffectAreaSound
  • SetMagicEffectAreaSoundC
  • SetMagicEffectEnchantFactor
  • SetMagicEffectEnchantFactorC
  • SetMagicEffectBarterFactor
  • SetMagicEffectBarterFactorC
  • SetMagicEffectModel
  • SetMagicEffectModelC
  • SetMagicEffectHitShader
  • SetMagicEffectHitShaderC
  • SetMagicEffectEnchantShader
  • SetMagicEffectEnchantShaderC
  • SetMagicEffectProjectileSpeed
  • SetMagicEffectProjectileSpeedC
  • SetMagicEffectLight
  • SetMagicEffectLightC
  • AddMagicEffectCounter
  • AddMagicEffectCounterC
  • RemoveNthMagicEffectCounter
  • RemoveNthMagicEffectCounterC
  • SetMagicEffectCounters
  • SetMagicEffectCountersC
  • SetMagicEffectOtherActorValue
  • SetMagicEffectOtherActorValueC
  • SetMagicEffectUsedObject
  • SetMagicEffectUsedObjectC
  • GetCombatStyle
  • GetCombatStyleDodgeChance
  • GetCombatStyleDodgeLRChance
  • GetCombatStyleDodgeLRTimerMin
  • GetCombatStyleDodgeLRTimerMax
  • GetCombatStyleDodgeFWTimerMin
  • GetCombatStyleDodgeFWTimerMax
  • GetCombatStyleDodgeBackTimerMin
  • GetCombatStyleDodgeBackTimerMax
  • GetCombatStyleIdleTimerMin
  • GetCombatStyleIdleTimerMax
  • GetCombatStyleBlockChance
  • GetCombatStyleAttackChance
  • GetCombatStyleStaggerBonusToAttack
  • GetCombatStyleKOBonusToAttack
  • GetCombatStyleH2HBonusToAttack
  • GetCombatStylePowerAttackChance
  • GetCombatStyleStaggerBonusToPowerAttack
  • GetCombatStyleKOBonusToPowerAttack
  • GetCombatStyleHoldTimerMin
  • GetCombatStyleHoldTimerMax
  • GetCombatStyleAcrobaticsDodgeChance
  • GetCombatStyleRangeOptimalMult
  • GetCombatStyleRangeMaxMult
  • GetCombatStyleSwitchDistMelee
  • GetCombatStyleSwitchDistRanged
  • GetCombatStyleBuffStandoffDist
  • GetCombatStyleRangedStandoffDist
  • GetCombatStyleGroupStandoffDist
  • GetCombatStyleRushAttackChance
  • GetCombatStyleRushAttackDistMult
  • GetCombatStyleDodgeFatigueModMult
  • GetCombatStyleDodgeFatigueModBase
  • GetCombatStyleEncumberedSpeedModBase
  • GetCombatStyleEncumberedSpeedModMult
  • GetCombatStyleDodgeUnderAttackMult
  • GetCombatStyleDodgeNotUnderAttackMult
  • GetCombatStyleDodgeBackUnderAttackMult
  • GetCombatStyleDodgeBackNotUnderAttackMult
  • GetCombatStyleDodgeFWAttackingMult
  • GetCombatStyleDodgeFWNotAttackingMult
  • GetCombatStyleBlockSkillModMult
  • GetCombatStyleBlockSkillModBase
  • GetCombatStyleBlockUnderAttackMult
  • GetCombatStyleBlockNotUnderAttackMult
  • GetCombatStyleAttackSkillModMult
  • GetCombatStyleAttackSkillModBase
  • GetCombatStyleAttackUnderAttackMult
  • GetCombatStyleAttackNotUnderAttackMult
  • GetCombatStyleAttackDuringBlockMult
  • GetCombatStylePowerAttackFatigueModBase
  • GetCombatStylePowerAttackFatigueModMult
  • SetCombatStyleDodgeChance
  • SetCombatStyleDodgeLRChance
  • SetCombatStyleDodgeLRTimerMin
  • SetCombatStyleDodgeLRTimerMax
  • SetCombatStyleDodgeFWTimerMin
  • SetCombatStyleDodgeFWTimerMax
  • SetCombatStyleDodgeBackTimerMin
  • SetCombatStyleDodgeBackTimerMax
  • SetCombatStyleIdleTimerMin
  • SetCombatStyleIdleTimerMax
  • SetCombatStyleBlockChance
  • SetCombatStyleAttackChance
  • SetCombatStyleStaggerBonusToAttack
  • SetCombatStyleKOBonusToAttack
  • SetCombatStyleH2HBonusToAttack
  • SetCombatStylePowerAttackChance
  • SetCombatStyleStaggerBonusToPowerAttack
  • SetCombatStyleKOBonusToPowerAttack
  • SetCombatStyleHoldTimerMin
  • SetCombatStyleHoldTimerMax
  • SetCombatStyleAcrobaticsDodgeChance
  • SetCombatStyleRangeOptimalMult
  • SetCombatStyleRangeMaxMult
  • SetCombatStyleSwitchDistMelee
  • SetCombatStyleSwitchDistRanged
  • SetCombatStyleBuffStandoffDist
  • SetCombatStyleRangedStandoffDist
  • SetCombatStyleGroupStandoffDist
  • SetCombatStyleRushAttackChance
  • SetCombatStyleRushAttackDistMult
  • SetCombatStyleDodgeFatigueModMult
  • SetCombatStyleDodgeFatigueModBase
  • SetCombatStyleEncumberedSpeedModBase
  • SetCombatStyleEncumberedSpeedModMult
  • SetCombatStyleDodgeUnderAttackMult
  • SetCombatStyleDodgeNotUnderAttackMult
  • SetCombatStyleDodgeBackUnderAttackMult
  • SetCombatStyleDodgeBackNotUnderAttackMult
  • SetCombatStyleDodgeFWAttackingMult
  • SetCombatStyleDodgeFWNotAttackingMult
  • SetCombatStyleBlockSkillModMult
  • SetCombatStyleBlockSkillModBase
  • SetCombatStyleBlockUnderAttackMult
  • SetCombatStyleBlockNotUnderAttackMult
  • SetCombatStyleAttackSkillModMult
  • SetCombatStyleAttackSkillModBase
  • SetCombatStyleAttackUnderAttackMult
  • SetCombatStyleAttackNotUnderAttackMult
  • SetCombatStyleAttackDuringBlockMult
  • SetCombatStylePowerAttackFatigueModBase

0017aEdit

Bugfix update

  • Fix compiler occasionally freezing when attempting to save a script
  • Make local variables take precedence over objectIDs in cases of name collision
  • Fix crash with GetEquippedItems after unequipping slotless items
  • IsModelPathValid now works with non-simple models like NPC and Hair
  • Remove delay between calling InsertInInputText and seeing the displayed text updated
  • Empty strings are no longer displayed as "NULL" with the %z format specifier; instead nothing is displayed


0017bEdit

Beta support for Steam