OBSE Change Log
0001Edit
first release
Simple proof of concept demo.
0002Edit
first useful commands
Implemented GetNumItems, GetInventoryType and IsKeyPressed.
- dynamic_cast support
- form access (no data yet)
- extra data list access
- more virtual functions documented
- class hiearchy
- minor code reorg
- extra data types
- container access
- variable name cleanup
- input commands
- 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.
- fix script result type
- pad opcodes out to 1400
- 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.
- all RTTI structures
- many form structures defined
- testing dynamic form creation
- improve dll loader sync for editor
- added Utilities file with analysis utils
0005Edit
fixing math functions, DirectInput, GetOBSEVersion, console commands
- converted to VS2005
- compiles under VS Express
- add timeslip's math fns, rename old fns
- add many new CRCs
- more form structures, a few game objects also
- update rand function to use mersenne twister
- add DirectInput hooking functions, disallow modification of ESC and ` keys
0006Edit
Item Value functions, Item type functions, Class functions, HasSpell, ModActorValue2
- more form structures and class decoding
- 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
- fix bug with GetOV ArmorType
- fix bug with IngredientItem decoding affecting GetOV weight and value
- integrate changes from Timeslip
- reimplement editor font changing code so it works on win2k, add font picker dialog
0008Edit
GetEquippedObjectValue, GetEquippedCurrentValue, GetMagicItemValue, GetMagicEffectValue, GetMagicEffectCodeValue, MagicItemHasEffect, MagicItemHasEffectCode, GetNumMouseButtonsPressed, GetMouseButtonPress.
- added Enchantment value to the Object Value functions to return a ref to any enchantment on an object
- 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.
- fix bug with signed mouse movement
- fix fake mouse keycode
0009Edit
Individual GetValue functions, Set/ModValue functions, Beta Flow Control functions, new HTML command documentation
- adds 114 functions: 70 provide completely new functionality
- fix bug looping over magic effects
- 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
- update game setting/ini file functions to work with unsigned and boolean types
- buffered input functions, useful for menus or other text input
- fix some potential thread-safety issues
- 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)
- fix Is* functions, allow passing arguments that are not considered 'inventory items'
- replace local magic effect list with access to oblivion's internal list
- actually seed the random number generator (doh)
- fix internal access to form list for 1.2.214
- calculate fps via average frametime (calculated via GetTickCount) over 20 frames
- log version of OBSE, version of Oblivion in obse.log
- change resource version number to 0.0.10.1 to allow for more precision when releasing intermediate versions without ticking the major version number
- 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
- fixes GetBaseObject
- IsArmor, IsBook, IsContainer and IsSoulGem no longer require the passed object ID
- CopyAllEffectItems, CopyNthEffectItem and RemoveNthEffectItem no longer need a cloned form as a target
- 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:
- GetBaseObject now works when called without a reference
0013Edit
- 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
- 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