File information

Last updated

Original upload

Created by


Uploaded by


Virus scan

Some manually verified files

About this mod

Pluggy is a multifunction OBSE plugin that adds new functions to Oblivion, and is a further extension to Oblivion Script Extender. Modders - more info on the CS wiki. This is the continuation of Elys original Pluggy (she stopped working on it after v122).

Permissions and credits
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.

See the Readme for more details (button above).
Discussion thread
CS wiki (more info for modders)

Oblivion v1.2.416
OBSE v15 (or higher)

Other versions
Hud version - simply rename any Pluggy after v122 to "OBSE_Elys_Pluggy_Hud.dll" to access the Hud functionality.

I've included Elys original v122, as well the latest pre-HUD beta (v91).

Dev v132 (requires OBSE v17) is a development/beta version for testing and new functions - see the thread for more details. Modders, please try these out as they contain important updates. Players, please also try them but keep in mind that they are Beta versions and you should always backup your saves before using.

There are also 2 test files. If you had any exterior to interior crashes from the older HUD versions (v100-122) or with HUD enabled in the latest version, please try these out and see if they stop the crash.

Version History
v132 (11-5-2009)
1. GetEsp Bugfix: Should now be able to use the StringID parameter. Correctly returns -1 if an incorrect Temporary StringID (-2000 to -2009) is used.

2. v129-v131 Bugfix: The EspIDs and their corresponding ModIDs could become jumbled, possibly leading to strange errors as mods became unable to manipulate their Pluggy data. Should be fixed because of the following...

3. Behind-the-scenes changes to the EspID system - Completely overhauled the way Pluggy handles EspIDs so it's simpler and less prone to errors. This affects all ...Esp functions, all Create/New... functions, and generally all functions that accept EspIDs. I've given them a brief check to make sure they still work, but please try them out.

4. Upgraded the .dlx file to OBSE v18b4. This could potentially affect the Names functions, RunBatString, and KillMenu so please try them out. In the future, this upgrade should allow the use of OBSE strings.

5. A couple of users have reported sporadic CTDs while loading save games. I experienced it myself, but only once and couldn't get it to crash on the save game again. To help narrow down this bug, Pluggy will create a "Pluggy - possible CTD while loading save game.log" file, in the .dll directory, every time you load a save game. If you experience a crash, please follow the directions in the log file.

v131 (8-7-2009)
1. All HudX_Property functions allow you to request the property info as well as set it, just like the String and Array functions. That is, if you use HudS_X without the X parameter, it will return that HudS's X position.

This includes string properties - i.e., HudS_Tex will return a StringID if you don't supply one (set StringID to HudS_Text HudID). This string is a new created string, just as if you had used CreateString. So,
long spImage
long ImageHudS
set spImage to HudS_Tex ImageHudS

will set spImage to a new StringID containing the file path of the image used by ImageHudS. This string's owning EspID will be yours (so it won't work with result scripts or from the console), won't be protected. I've also decided it will have the RefuseZero flag - so it won't be 0. I assume that will cover more situations than if I allowed 0.

2. Exposed the function HudT_Font.

v130 (8-4-2009)
1. Bugfix: Names (i.e., Elys' Map Markers) should now be full length instead of 1 letter (thanks to Badhair for the catch).

v129 (8-2-2009)
1. Pluggy now uses the .obse save file rather than its own .pluggy file. Your old .pluggy files still contain important data, so don't delete them - Pluggy will handle that automatically (when/if it should be done). Please try this out on a wide variety of mods to make sure the data is saved/loaded correctly.

v128 (7-24-2009)
1. This version (and here on) will require OBSE v17. (Note that Pluggy will probably require v18 once it comes out, as well.)

2. Log files can now be deleted from the "Data" (root=1) directory. This includes indexed log files (i.e., .log0, .log1).

3. Added ToOBSEString and FromOBSEString functions. Use these to import/export strings between Pluggy and OBSE. These are still in development, so let me know of any suggestions on how they should function (or if they're great as is :P).

v127 (7-20-2009)
1. Bugfix: IniKey/SectionExists and IniDelKey should now correctly accept RootID.

v126 (6-9-2009):
1. Some major behind-the-scene changes (new ExtractArgsEx)

2. New RootIDs: 3 = "..\Oblivion\Data\Pluggy\User Files\" and 4 = "..\My Documents\My Games\Oblivion\Saves\".

3. More functions accept RootIDs - all file functions should now accept a RootID. Note that for "Write" functions (DelFile, RenFile, and all IniWrite functions) you can only edit an .ini file or any file in the "User Files" directories.

4. Bugfix: Time string tokens (-9000 range) should be more accurate and change every second now (instead of every 5 minutes).

v125 (05-14-2009):
1. Bugfix: Corrected "Saved without Pluggy" detection - should take care of the over-zealous pluggy data resets.

2. Bugfix: The function csc can now be used in OBSE let statements.

v124 (04-19-2009):
1. v124 includes the patches made by Leandro in v123 (mostly made sure that the DX functions correctly left the critical sections).

2. Players can toggle HUD functionality on and off. To turn it on, just change the file name from "OBSE_Elys_Pluggy.dll" to "OBSE_Elys_Pluggy_HUD.dll". Likewise, to turn it off, just change the name back to "OBSE_Elys_Pluggy.dll".

3. Pluggy will automatically ignore the Pluggy co-save data if it doesn't seem to match the .ess save. This was implemented because there were several players who uninstalled Pluggy, played a bit, and reinstalled it without first deleting the Pluggy co-saves. Can't do anything about saves from v122, but from here-on-out if you/the player does this the co-save will be ignored. Also takes care of mismatched files - that is, if you have several "AutoSave.ess" files and matching Pluggy co-saves.

4. For modders, a new function IsPluggyDataReset to let you know when the above has happened. It will return true if the Pluggy data is being ignored, if it's a New Game, if the co-save was deleted, etc. I'd suggest using this in a GetGameLoaded-type quest script.
[indent]Just want to make sure this is clear - when I say ignored, I only mean the data from the Pluggy co-save. You can still add new data, re-initialize the old data, etc.

5. For modders, a new function IsHUDEnabled to tell if the player has enabled HUD functions. If they aren't enabled - don't use them (they will crash the game). The player can only enable them before they start Oblivion, so you can use GetGameLoaded/Restarted. Also, note that if the player disables the HUD functions, their HUD data will be erased, and will not be available if they later re-enable the HUD functions.

6. Updated the Pluggy Savefile Format documentation.

7. ScreenInfo will now be saved if the player has Text HUDs, but not Image HUDs (HudS). This will allow HudTs to be auto-scaled when they're the only ones used.

8. If there's no Pluggy data that needs to be saved, the Pluggy co-save is deleted. Before, either this didn't happen or all 3 (.ess, .obse, and .pluggy) were deleted. Now it's just the Pluggy file.

9. Some internal changes, mostly related to saving and loading Pluggy co-saves.

Elys for 122 versions of Pluggy. I'm really just making minor patches on the groundwork she's already laid.

Leandro Conde for helping me with the Pluggy code and general Delphi understanding.

Scruggsy and DragoonWraith for helping me with the OBSE side of things.

Everyone who tested out the various fixes, attempts, and crashes going from v122-124.