Oblivion Mod:Cobl/Modding/General Functions
The UESPWiki – Your source for The Elder Scrolls since 1995
For all functions:
- See the script for more details
- Do not edit the script
- If you know of a better technique or would like an extra option, please mention it here!
- If you need a variation of the script, make a new script and copy/paste the COBL script into the new script.
- Do not edit any of the COBL scripts, seriously. Be careful not to hit the "Recompile all Scripts" button and before you release use TES4View to make sure you haven't edited any of the scripts.
Functional Activators[edit]
(I need to write up a CS wiki article on activators - for now, I assume you know what they are--Haama)
All functions
- Have the same name setup
- Script = cobGenFuncNameFAS
- Base = cobGenFuncNameFA
- Ref = cobGenFuncNameFAR
- Assume the function will work, and won't perform any checks.
- Most functions include a debug mode that will perform the necessary checks. Set cobGenDebug to 1 to enter this mode.
- Can have variable flags, much like a DOS command
- Most require OBSE
- Some use labels
- Here's a Cheat Sheet with the requirements, labels and flags for each function
Function Script | Version | Details |
---|---|---|
cobGenAddFromListFAS | 1.36 | Adds items from one list to a container. The list can either be another container or a Pluggy array. Also includes options to control the quantity of each added item and block message spam when added to the player. Essentially, this is a DuplicateAllItems function that doesn't create new FormIDs.
|
cobGenAppFinderFAS | 1.47 | Determines and returns the references of the strongest apparati in a container. Can use on multiple containers (i.e., a storage container and the player).
|
cobGenMagicItemsHaveSameEffectsFAS | 1.35 | Determines if 2 magic items have the same effects and number of those effects (non-order specific). Optionally, it can ignore scriptless effects. |
cobGenMagicItemsHaveSamePotenciessFAS | 1.35 | Determines if 2 magic items have the same effects and potencies (non-order specific). Optionally, it can ignore scripted and/or scriptless effects. |
cobGenMimicPotionFAS | 1.35 | Copies all of the attributes of one potion unto another item. Optionally, it can ignore the quest status, script, or effects of the original potion. Essentially, this is a CloneForm function that can use an old FormID instead of creating a new clone. |
cobGenRefreshContMenuFAS | 1.35 | Refreshes the container menu by re-activating it. Does it later in the same frame so multiple items can use it without refreshing each time. By default, it will only refresh the menu if it is still open (several options to change this). |
cobGenRefreshInvMenuFAS | 1.35 | Refreshes the player's inventory menu. Does it later in the same frame so multiple items can use it without refreshing each time. By default, it will only refresh the menu if it is still open (several options to change this).
|
cobGenRemoveFromListFAS | 1.36 | Removes items from one list to a container. The list can either be another container or a Pluggy array. Also includes options to control the quantity of each added item and block message spam when removed from the player.
|
cobGenToggleMenuFAS | 1.35 | Turns off the menu to prevent lag when adding/removing items (use before adding/removing the items) and automatically turns it back on later in the frame. Good for multiple calls from multiple items, or when the item removes itself from the inventory afterwards.
|
Object Scripts[edit]
Simply attach the script (or your copy) to the desired item.
Function Script | Version | Details |
---|---|---|
cobGenRemoveSelfOS | 1.35 | Safely removes self if equipped or dropped. Safe-guard for items that are supposed to disappear such as buttons and the general token used to refresh menus. |
cobGenUnequipFemaleOS | 1.37 | For male specific clothing, armor, weapons.
|
cobGenUnequipMaleOS | 1.37 | For female specific clothing, armor, weapons.
|
Global Variables[edit]
Global | Type | Version | Details |
---|---|---|---|
cobGenDebug | bool | ??? | Debug flag (set to 1 for debug mode). By default, the function scripts assume the information has been entered correctly and all requirements have been met. When in debug mode, these functions will make the necessary checks, and if a problem is found will print an error message to the console. |
cobGenInput, cobGenInput2, cobGenOutput | int | ??? | Used to pass information back and forth between scripts via (pluggy) ArrayIDs. Due to the way Oblivion works, you have to use an explicit reference (Reference EditorID) to set a variable on another object. If you want to use a reference variable instead (set rVar.Var to #), you can pass the information by storing it in an array, setting cobGenInput to that ArrayID, then run rVar's script and use the information in the array. Likewise, use cobGenOutput to pass information out of rVar's script.
|
cobGenLabelID | 0-255 | ??? | Used in conjunction with cobGenLabelFAR to prevent LabelID overlaps. These are mainly used by Cobl functions, but are useful for any Functional Activator or Result Script, or if you're using a Cobl function within a loop. It requires 2 lines per LabelID, one to change the global and one to set your own variable. General usage should look like
short lID01 short lID02 ... cobGenLabelIDFAR.Activate cobGenActRef, 1 ;Changes the global set lID01 to cobGenLabelID ;Set to your own variable cobGenLabelIDFAR.Activate cobGenActRef, 1 set lID02 to cobGenLabelID ... Label lID01 ... Goto lID01
|