Oblivion

File information

Last updated

Original upload

Created by

haama

Uploaded by

Haama

Virus scan

Some manually verified files

Documentation

Readme

View as plain text

===========================
OBSE Elys Pluggy v124

Pluggy v1-122 Elys
Pluggy v123 Leandro
Pluggy v124 haama
===========================

1. Description
2. Requirements
3. Installing
4. Using Pluggy
5. Uninstalling
6. Backup
7. Pluggy Commands List
8. Contact and Information
9. Disclaimer
10. Open Source
11. Credit

===========================
1. DESCRIPTION
===========================

Pluggy is a multifunction OBSE plugin that adds new functions to Oblivion, and is a further extension to Oblivion Script Extender. The functions allow modders to create and manipulate arrays, strings, .ini files, text files, both text and surface/image HUDs, and change object names.

It uses OBSE to add the functions to the game, and like OBSE 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.

===========================
2. REQUIREMENTS
===========================

Oblivion Version 1.2.0416
Oblivion Script Extender Version 15.3 or above.
( http://obse.silverlock.org/ )

===========================
3. INSTALLING
===========================

Extract "OBSE_Elys_Pluggy.dlx" and "OBSE_Elys_Pluggy.dll" to "Oblivion Install Directory\Data\OBSE\Plugins". If you don't have an "..\OBSE\Plugins" directory, create one.

===========================
4. USING PLUGGY
===========================

As a player, installing will probably be your last step.

If you have a Pluggy mod that uses HUD functionality, see the warning below. If you decide to enable the HUD functionality, change the Pluggy dll file name from "OBSE_Elys_Pluggy.dll" to "OBSE_Elys_Pluggy_HUD.dll". (Only change the .dll file name, leave the .dlx name the way it is!)

If you use a save game manager, or manually move around your save files, be aware that there are 2 extra files to move. These co-save files keep the data that correspond to your save game. One contains the Pluggy data (---.pluggy) and the other the OBSE data (---.OBSE). Make sure to keep these files when you move the .ess save file, or delete them if you delete the .ess file. As far as Savegame Managers are concerned, I know Wrye Bash is aware of both .OBSE and .pluggy and will correctly move them around, but I don't know about any other Savegame managers.

=============
Known Issues
=============

HUD crashes - The HUD functionality has been found to cause crashes when entering buildings. Which users are affected by the crash seems to be hit and miss, but seems to solely affect nVidia users. Note that just because nVidia users are the only ones with the crash, that doesn't mean it affects all nVidia users (my 8800 GTS has yet to crash with the HUD functionality).

Bad mouse buttons - If you have a mouse that double-clicks instead of single-clicks (like mine), then use the Keyboard to select and load a save game. If the mouse double-clicks, the Pluggy data may be skipped.

=============
Modder Info
=============

Modders: The documentation inside the Pluggy Docs folder is far from being up to date.
You'll find HUD function information and some more up to date information at the CS wiki: "http://cs.elderscrolls.com/constwiki/index.php/Category:Pluggy".

Like OBSE, you'll want to make sure the player has a good version Pluggy installed. You can check it with
if ((GetPluginVersion "OBSE_Elys_Pluggy") >= 124) ;or any other version number
;then initialize your mod
If you need HUD functionality, make sure the player has enabled it with
if IsHUDEnabled

Note that even though the player has to change the name of the .dll, Pluggy will always be refered to as "OBSE_Elys_Pluggy" with GetPluginVersion and IsPluginInstalled (and any other OBSE Plugin function)

Also note that the Pluggy data will only be available if the Pluggy co-save is still around. If the player deletes it, or mixes up Pluggy co-saves, the data won't be available. You can check this by using IsPluggyDataReset. Best suggestion is to use it in a quest script that always runs
begin GameMode
if GetGameLoaded
if IsPluggyDataReset
;warn the player, prevent them from proceeding, re-initialize the data, etc.

===========================
5. UNINSTALLING
===========================

Delete "OBSE_Elys_Pluggy.dlx" and "OBSE_Elys_Pluggy(_HUD).dll". Delete your Pluggy co-saves in the Oblivion save directory "...\My Documents\My Games\Oblivion\Saves\".

===========================
6. BACKUP
===========================

As a surviving gold rule, always backup all your save games before trying a new mod. Better safe than sorry. It applies to this mod as well.


===========================
5. PLUGGY COMMANDS LIST
===========================

Name HelpText Opcode(h) Opcode
----------------------------------------------------------------------------------------------------
GetEsp Get EspID. 2330h 9008
CreateArray Create a new array. 2331h 9009
DestroyArray Destroy array. 2332h 9010
ArraySize Set the Array size. 2333h 9011
ArrayCount Get the Array count. 2334h 9012
SetInArray Store value in Array. 2335h 9013
SetFloatInArray Store float in Array. 2336h 9014
GetInArray Retrieve value from array. 2337h 9015
GetTypeInArray Retrieve type from array. 2338h 9016
RemInArray Remove value from array. 2339h 9017
FindInArray Find occurence in array. 233Ah 9018
FindFloatInArray Find float occurence in array. 233Bh 9019
SetRefInArray Store reference ID in Array. 233Ch 9020
FindRefInArray Find reference occurence in array. 233Dh 9021
CopyArray Duplicate an array. 233Eh 9022
DupArray Duplicate an array. 233Eh 9022
ArrayEsp Set the EspID 233Fh 9023
ArrayProtect Set the Array Protected Flag 2340h 9024
FirstInArray Get the first empty or used Index in the array. 2341h 9025
FirstFreeInArray Get the first empty or used Index in the array. 2341h 9025
DestroyAllArrays Destroy all Esp's array. 2342h 9026
PackArray Pack array. 2343h 9027
CreateString Create a new string. 2344h 9028
DestroyString Destroy string. 2345h 9029
SetString Set string. 2346h 9030
StringEsp Set the EspID 2347h 9031
StringProtect Set the String Protected Flag 2348h 9032
StringLen Get the String Length. 2349h 9033
DestroyAllStrings Destroy all Esp's String. 234Ah 9034
StringSetName Set the name. 234Bh 9035
StringGetName Get the name. 234Ch 9036
StringMsg Display the string as Message. 234Dh 9037
StringCat Concatenates strings. 234Eh 9038
UserFileExists Does a Pluggy text file exist? 234Fh 9039
TxtFileExists Does a Pluggy text file exist? 234Fh 9039
RenFile Renames a Pluggy user file. 2378h 9080
RenTxtFile Renames a Pluggy user file. 2378h 9080
DelFile Delete a Pluggy user file 2379h 9081
DelTxtFile Delete a Pluggy user file 2379h 9081
StringToTxtFile Write a string in a text file 237Ah 9082
CopyString Copy a String. 237Bh 9083
IntToString Convert an integer into a string. 237Ch 9084
FloatToString Convert a float into a string. 237Dh 9085
RefToString Convert a reference into a string. 237Eh 9086
IniReadInt Read integer from ini file. 237Fh 9087
IniReadFloat Read float from ini file. 2380h 9088
IniReadRef Read a reference from ini file. 2381h 9089
IniWriteInt Write integer to ini file. 2382h 9090
IniWriteFloat Write float to ini file. 2383h 9091
IniWriteRef Read a reference from ini file. 2384h 9092
IniKeyExists Checks if a key exists in ini file. 2385h 9093
IniDelKey Deletes a key in ini file. 2386h 9094
EspToString Convert an esp filename into a string. 2387h 9095
IniReadString Reads a string from ini file. 2388h 9096
IniWriteString Writes a string from ini file. 2389h 9097
ModRefEsp Returns a reindexed reference 238Ah 9098
GetRefEsp return the reference's EspID. 238Bh 9099
StringToRef Converts a string into ref. 238Ch 9100
StringCmp Compares two strings and return the position of the first difference 238Dh 9101
FileToString Copy a file into a string 238Eh 9102
StringPos Returns the position of a substring in a string 238Fh 9103
StringToInt Converts a string into an integer. 2390h 9104
StringToFloat Converts a string into a float. 2391h 9105
ArrayCmp Compares two arrays 2392h 9106
StringMsgBox Display the string in a Message Box. 2393h 9107
StringIns Inserts a substring into a string 2394h 9108
StringRep Replace a substring in a string 2395h 9109
IntToHex Convert an integer into a hex string. 2396h 9110
LC Long based calculation 2397h 9111
FromTSFC Copy a TSFC String. 23B0h 9136
ToTSFC Copy a string to a TSFC String. 23B1h 9137
StrLC Long based calculation. 23B2h 9138
CreateEspBook Create a book in a new plugin. 23B3h 9139
FmtString Set a string using OBSE formating. 23B4h 9140
FixName Fix the name. 23B5h 9141
ResetName Reset the name. 23B6h 9142
HasFixedName Has a fixed name? 23B7h 9143
csc Converts a ScanCode. 23B8h 9144
StringSetNameEx Set the name. 23B9h 9145
StringGetNameEx Get the name. 23BAh 9146
FixNameEx Fix the name. 23BBh 9147
IniGetNthSection Get a section name from ini file. 23BCh 9148
IniSectionsCount Return the sections count. 23BDh 9149
RunBatString Run a string as batch. 23BEh 9150
Halt Halt Oblivion immediatly! 23BFh 9151
RefToLong Convert Long to Ref. 23C0h 9152
LongToRef Convert Ref to Long. 23C1h 9153
FindFirstFile Find first file. 23C2h 9154
FindNextFile Find next file. 23C3h 9155
GetFileSize Return the file size 23C4h 9156
NewHudS Create a new Hud Surface. 23C5h 9157
DelHudS Destroy a HudS. 23C6h 9158
ScreenInfo Return info about the screen. 23C7h 9159
HudS_X HudS X 23C8h 9160
HudS_SclX HudS Scale X. 23C9h 9161
HudS_Show HudS Show State. 23CAh 9162
HudS_Opac HudS Opacity. 23CBh 9163
Huds_Opacity HudS Opacity. 23CBh 9163
HudS_Align HudS_Alignment. 23CCh 9164
AutoSclHudS HudS AutoScale State. 23CDh 9165
HudS_Y HudS Y 23CEh 9166
HudSEsp Set the EspID 23CFh 9167
HudSProtect Set the HudS Protected Flag 23D0h 9168
HudsInfo Return info about the HudS. 23D1h 9169
DelAllHudSs Destroy all Esp's HudS. 23D2h 9170
HudS_L HudS L 23D3h 9171
rcsc Converts a char to scancode. 23D4h 9172
HudS_SclY HudS Scale Y. 23D5h 9173
NewHudT Create a new Text Hud. 23D6h 9174
DelHudT Destroy a HudT. 23D7h 9175
HudT_X HudT X 23D8h 9176
HudT_SclX HudT Scale X. 23D9h 9177
HudT_Show HudT Show State. 23DAh 9178
HudT_Opac HudT Opacity. 23DBh 9179
HudT_Opacity HudT Opacity. 23DBh 9179
HudT_Align HudT_Alignment. 23DCh 9180
AutoSclHudT HudT AutoScale State. 23DDh 9181
HudT_Y HudT Y 23DEh 9182
HudTEsp Set the EspID 23DFh 9183
HudTProtect Set the HudT Protected Flag 23E0h 9184
HudTInfo Return info about the HudT. 23E1h 9185
DelAllHudTs Destroy all Esp's HudT. 23E2h 9186
HudT_L HudT L 23E3h 9187
HudT_SclY HudT Scale Y. 23E4h 9188
PauseBox Display the string in a Pause Box. 23E5h 9189
KillMenu Kill the menu 23E6h 9190
SetHudT Set a HudT text 23E7h 9191
HudT_Text HudT Text. 23E8h 9192
HudS_Tex HudS Texture. 23E9h 9193
SanString Sanitize String. 23EAh 9194
IsHUDEnabled Returns if HUD functions are available. 23EBh 9195
IsPluggyDataReset Returns if Pluggy data has been reset or not loaded. 23ECh 9196
PlgySpcl Pluggy Special Reserved Command. Do not use! 23FFh 9215

----------------------------------------------------------------------------------------------------

===========================
8. CONTACT AND INFORMATION
===========================

Contact "haama" at the BethSoft forums "http://www.bethsoft.com/bgsforums/"
"Pluggy" Discussion thread at "http://www.bethsoft.com/bgsforums/index.php?showtopic=978991"

===========================
9. DISCLAIMER
===========================

This software is provided 'as-is', without any express or implied
warranty. In no event shall the authors be held liable for any damages
arising from the use of this software.

===========================
10. OPEN SOURCE
===========================
This software is open source and the source code should be available at the download site.
Copy, derive, etc. at will. Please, though, no Unofficial releases - if you have a some code in mind or a file ready to go, please bring it up in the discussion thread or TESNexus or PM me.

===========================
11. CREDIT
===========================
Elys for the original Pluggy versions
Leandro for Delphi and Pluggy help
Scruggsy and Dragoonwraith for explaining the OBSE side of things
Everyone who tested out the various fixes, attempts, and crashes going from v122-124
The OBSE crew (I probably wouldn't be able to make heads or tails of anything without their groundwork)