[RELz] Oblivion Script Extender (OBSE) 0020 (unofficial)

Post » Sun Aug 07, 2011 10:07 pm

I've been waiting for the new thread, but I got impatient. So this is a temp thread until the OBSE team starts an official one.
User avatar
Kira! :)))
 
Posts: 3496
Joined: Fri Mar 02, 2007 1:07 pm

Post » Sun Aug 07, 2011 8:35 pm

From the original OP:

Continuing from the http://www.gamesas.com/index.php?/topic/1184481-relz-oblivion-script-extender-obse-0020/.

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.

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

0020 is now available for general use. Many thanks to our dedicated, creative, extremely patient beta testers.

What's new:
Spoiler
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

0020 beta 6:
-GetCellNorthRotation
-SetRaceWeight/Scale
-SetGoldValue_T
-GetActorBaseLevel
-SetDoorTeleport now accepts an optional argument specifying the change should not be recorded in the savegame
-OnCreatePotion event
-Fix issues with input functions arising from conflicts between mods using GetKeyPress and Enable/DisableControl.
-Fix IsDigit always returning true regardless of character type
-Fix misnamed OnPlayerDrop event to OnActorDrop
-Prevent GetDescription using cached value of skill perk text.
-Make SetInputText accept extremely long strings
-Make compiler override accept string_var as argument for old sv_* commands
-Fix OnSkillUp event

0020 beta 5:
-Get/SetLocalGravity
-Get/SetVelocity
-GetVerticalVelocity
-New events: OnHealthDamage, OnCreateSpell, OnEnchant, OnAttack, OnRelease, OnBowAttack, OnBlock, OnDodge, OnStagger, OnRecoil
-OnActorEquip event now triggered by actors equipping items due to changes in their AI
-OnHealthDamage event can now be filtered by the damaged actor
-SetVerticalVelocity now operates in game units instead of centimeters
-Internal changes to handling of parallel script execution

0020 beta 4:
-Get/SetCellWaterType
-GetEquippedTorchTimeLeft
-(Set)IsHidden/Automatic/MinimalUseDoor, SetIsOblivionGate
-OnEatIngredient, OnNewGame events
-Update active effect commands to work on non-actor magic targets (doors, furniture, etc)
-ar_Erase erases all elements if second argument omitted
-GetGameLoaded now returns true when the player starts a new game

0020 beta 3:
-OnDrinkPotion, OnActorDrop, OnSpell/ScrollCast, OnFallImpact, OnMapMarkerAdd events
-SetVerticalVelocity
-GetHigh/MiddleHighActors
-GetCurrentPackageProcedure
-Get/SetSkillSpecialization
-GetEditorID optionally does not return formID if no string editorID exists
-%B, %b format specifiers for colored text in console
-Fix compiler override not being deactivated at end of script block
-Fix crash in GetRaceHairs/Eyes if race has no hairs/eyes defined
-Fix OnHitWith event being reported multiple times per event if weapon enchanted

0020 beta 2:
-Set/ClearPlayersLastRiddenHorse
-GetNthActiveEffectActorValue
-Equip/UnequipItemSilent
-GetCurrent/CallingScript
-GetRaceVoice now returns "this" race if no voice race is defined
-SetCellWaterHeight now works with cells that aren't defined in editor as having water
-Make "stringVar[-x]" work as expected
-Make foreach/while loops thread-safe
-Fix issue with IsKeyPressed2 introduced in 0020 beta

0020 beta:
-Compiler override for passing OBSE expressions and data types as arguments to any command
-Get/SetCellLighting
-IsNthActiveEffectApplied, GetNthEffectItem
-GetMapMarkers
-PlayIdle
-ar_CustomSort
-GetPathNodesInRadius/Rect
-Is/SetPathNodeDisabled
-GetPathNodePos
-PathEdgeExists
-GetPathNodeLinkedRef
-Get/SetCellClimate
-SetCellBehavesAsixterior, SetCellHasWater
-IsCellPublic, SetCellIsPublic
-IsOblivionInterior/World, IsInOblivion
-(Set)CanFastTravelFromWorld
-GetBoundingRadius, GetEditorSize
-GetTerrainHeight
-ResolveModIndex
-SetPos_T, SetOwnership_T, ClearOwnership_T
-GetRequiredSkillExp
-HasEffectShader
-Get/SetLightDuration, Get/SetTimeLeft
-SetCreatureSkill
-SetInputText, SetTextInputControlHandler, SetTextInputDefaultControlsDisabled


Readme (abbreviated):
Spoiler
Oblivion Script Extender v0020
by Ian Patterson, Stephen Abel, and Paul Connelly
(ianpatt, behippo, and scruggsywuggsy the ferret)

Additional contributions from Timeslip, The J, DragoonWraith, SkyRanger-1, badhair, JRoush, shademe, 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.

[ Installation ]

If you are using a retail (non-Steam) version of the game:

1. Copy obse_1_2_416.dll, obse_editor_1_2.dll, and obse_loader.exe to your Oblivion directory. This is usually in your Program Files folder, and should contain files called "Oblivion.exe" and "OblivionLauncher.exe".
2. 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 the game:

1. Copy obse_1_2_416.dll, obse_editor_1_2.dll, and obse_steam_loader.dll to your Oblivion directory. This is usually "C:\Program Files\Valve\Steam\SteamApps\common\oblivion".
2. 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

User avatar
Melly Angelic
 
Posts: 3461
Joined: Wed Aug 15, 2007 7:58 am

Post » Sun Aug 07, 2011 4:42 pm

Here's a question for anyone that's submitted OBSE custom plug-ins to the team.

I have a custom plug-in that was handed to me. It's functional as is, and eventually I'm going to be adding features to it when I learn more about C++ and the OBSE plug-in development process. So I know there will more changes coming down the line. But I wouldn't mind having some folks test it out in its current form, just to see if there any immediate issues that need to be addressed.

Should I register it now, or wait til it's more developed? And if do register it now, would I need to re-register it later if the plug-in features change?
User avatar
Adrian Morales
 
Posts: 3474
Joined: Fri Aug 10, 2007 3:19 am

Post » Sun Aug 07, 2011 7:01 pm

Here's a question for anyone that's submitted OBSE custom plug-ins to the team.

I have a custom plug-in that was handed to me. It's functional as is, and eventually I'm going to be adding features to it when I learn more about C++ and the OBSE plug-in development process. So I know there will more changes coming down the line. But I wouldn't mind having some folks test it out in its current form, just to see if there any immediate issues that need to be addressed.

Should I register it now, or wait til it's more developed? And if do register it now, would I need to re-register it later if the plug-in features change?
If by registering you mean asking for a range of opcodes (for any commands you might add) then the anwser is probably yes. Although it really depends on what kind of, and how much, commands we're talking about. If it's just 1 or 2 then you might as well use the default opcodes. With regards to waiting, should you need additional command slots in the future you can always request additional opcodes.
User avatar
adam holden
 
Posts: 3339
Joined: Tue Jun 19, 2007 9:34 pm

Post » Sun Aug 07, 2011 4:00 pm

If by registering you mean asking for a range of opcodes (for any commands you might add) then the anwser is probably yes. Although it really depends on what kind of, and how much, commands we're talking about. If it's just 1 or 2 then you might as well use the default opcodes. With regards to waiting, should you need additional command slots in the future you can always request additional opcodes.

Yes, I meant the opcodes. I don't really know enough to figure out how many I would need, but in order to make the plugin/mod more efficient, it will most likely have a lot of opcodes with new functions, actor values, etc. There's a lot of scripting that can probably be pulled out of the .esp and put into the plug-in directly. I just haven't had the time to start investigating it until now, and I'm just scratching the surface.

Maybe the best thing to do is to bundle what I currently have into a "safety" bundle, because I know it works, and then start messing around with it. I'd rather release the advanced version anyway. And folks seem to be happy with where the mod is currently at. So patience may be the better word for the day.
User avatar
~Amy~
 
Posts: 3478
Joined: Sat Aug 12, 2006 5:38 am


Return to IV - Oblivion