About this mod
Console Extender to help mod developments and to provide a better UI for casual debugging..
- Requirements
- Permissions and credits
Console Extender aims to help mod developments and to provide a better UI for casual debugging..
Commands:
- ClearConsoleLog/ClearLog ---> to clear the console log (supposed to fix a vanilla issue: "ClearConsole" doesn't work)
- DuplicateItems ---> copy inventory items; bonus filter: item type and count (supposed to fix a vanilla bug: "DuplicateAllItems" can create broken item data)
- GetAS3Variable/GetAS3Var ---> show UI variables to the Console log (e.g., element position) (supports any menu)
- SetAS3Variable/SetAS3Var ---> set UI variables from the Console to modify UI data
- Invoke ---> call UI functions from the Console through the Scaleform API
- PapyrusCallback/PapCall ---> requests the Console to call a global Papyrus function to pass UI data to a Papyrus script
- GetMemoryAddress/GMA ---> returns the Memory Address of Form based on the provided FormID
- SaveConsoleLogToFile/SaveLog ---> saves the Console log to a .txt file with the specified filename
- CopySelectedRefToClipboard/CTC ---> copies the selected reference's RefID to the (Windows) clipboard (ready to be pasted in SF1Edit..:)
Custom Console:
- Optional Console ("optional": the SFSE plugin works without it: i.e., the more "informative" selected ref data is not a Custom Console exlusive feature)
- Center aligned ("21:9 ready") textfields
- Smooth open-close animation
- OnKeyDown events to for input instead of OnKeyUp (i.e., no delay caused by waiting for releasing the key; so now it matches the OnMouseClick)
- Returns most (and most relevant) data flags of the selected reference (e.g., Essential, Protected, extended native flags)
- Shows the selected reference's actual name
Compatibility:
- SFSE plugin ("Main Mod file") should be compatible with any (including UI) mods
- Custom Console is technically a Console replacer though; you can only have one Console.swf
Install/Uninstall:
- Either with a mod manager or extract the files from the downloaded .zip file to ..\Starfield\Data\
- Can be uninstalled anytime mid-playthrough; it doesn't leave orphaned data in save games
Requirements:
- Starfield Script Extender (SFSE)
- Address Library for SFSE Plugins
Credits:
- CommonLibSF
Other:
- If you'd like to add even more functionality to the Console, here are some of my other SFSE mods:
- Report Load Order Info, Detailed Reference Info, Rename Anyone and Almost Anything
- INI file to modify mod settings (Custom Console extra data flags, auto Ultrawide align; DuplicateItems item type, max item instance count; etc.)
- Open Source C++ and AS3 code
Gallery, Command Syntax, Examples:
Custom Console:
![](https://cdn.statically.io/img/i.imgur.com/LH69scn.gif)
Smooth Open / Close Animation
(I know the .gif isn't the best way to demonstrate it)
![](https://cdn.statically.io/img/i.imgur.com/caQ3g2l.gif)
Optimized for large data...:)
(GetReferenceInfo command usage from the another mod)
![](https://cdn.statically.io/img/i.imgur.com/pXffhkg.png)
**********************************************************************************************************************************************
ClearConsoleLog:
Syntax ---> ClearConsoleLog
Syntax example ---> [ ClearConsoleLog ]
![](https://cdn.statically.io/img/i.imgur.com/fU2uFsf.gif)
**********************************************************************************************************************************************
DuplicateItems:
Settings INI: ..\SFSE\Plugins\StarfieldConsoleExtender.ini to filter the items.
Form filters: i.e., bIncludeARMO=1 to copy Armors, bIncludeMISC=0 to exclude Misc. Items.
Count filter: uItemCount=x (x = the maximum number of each item to copied; e.g., if x = 3 then only 3 "Adaptive Frames" are copied even if the player has 10).
Default: no filter, everything is copied.
Syntax ---> sourceRefID.DuplicateItems targetRefID
Syntax example ---> [ 14.DuplicateItems 14 ] to duplicate items from Player's inventory to the Player's inventory
![](https://cdn.statically.io/img/i.imgur.com/XMWrU7F.gif)
**********************************************************************************************************************************************
GetAS3Variable:
Returns AS3 public variables from UI (.swf) files.
Syntax ---> GetAS3Variable "MenuName VariablePath"
Syntax example ---> [ GetAS3Variable "Console root1.AnimHolder_mc.Menu_mc.CurrentSelection.text" ] would return the selected reference in the Console.
Supported AS3 data types: Int32, UInt32, Number, String, Wide String, Bool.
![](https://cdn.statically.io/img/i.imgur.com/jMScdqZ.png)
SetAS3Variable:
Changes the value of AS3 public variables.
Syntax ---> SetAS3Variable "MenuName VariablePath NewValue"
Syntax example ---> [ SetAS3Variable "Console root1.AnimHolder_mc.Menu_mc.CurrentSelection.text 0123456789" ]
would set 0123456789 as the selected reference.
Supported AS3 data types: Int32, UInt32, Number, String, Wide String.
Notes: for Strings, currently only one-word parameter is supported.
![](https://cdn.statically.io/img/i.imgur.com/ESGfLgt.png)
Invoke:
Calls a public AS3 function.
Syntax ---> Invoke "MenuName FunctionPath"
Syntax example ---> [ Invoke "Console root1.AnimHolder_mc.Menu_mc.PreviousCommand" ]
would readd the previous command to the command entry text field.
Notes: not get/set, only "common" AS3 functions are supported; can't pass arguments, I may add this funtionality later..
![](https://cdn.statically.io/img/i.imgur.com/h9dBUEX.png)
PapyrusCallback:
Calls a global Papyrus function and passes the given AS3 public variable as a String to this function.
(String must be one-word; may add formatting later..)
Syntax ---> PapyrusCallback "MenuName VariablePath ScriptName FunctionName"
Syntax example ---> [ PapCall "Console root1.AnimHolder_mc.Menu_mc.CurrentSelection.text TestScript TestFunc" ]
would call the global function "TestFunc" of script "TestScript".
Example Papyrus code:
Scriptname TestScript
Function TestFunc(String s) global
Debug.MessageBox("TestFunc = " + s)
EndFunction
![](https://cdn.statically.io/img/i.imgur.com/zL4v41r.png)
GetMemoryAddress:
Returns the Memory Address of a Form.
(Could be used for development).
Syntax ---> GetMemoryAddress FormID
Syntax example ---> [ GMA 7 ] would return the address of the Player's base form (00000007)
![](https://cdn.statically.io/img/i.imgur.com/qNdBc21.png)
SaveConsoleLogToFile:
Saves the Console log to a .txt file with the given filename.
Syntax ---> SaveConsoleLogToFile Filename
Syntax example ---> [ SaveLog Sarah_Forms ]
would create a .txt file of the log. (If [ FindForm Sarah] was the previous command, it would dump all forms that contain "Sarah".
![](https://cdn.statically.io/img/i.imgur.com/cvJrcm7.png)
CopySelectedRefToClipboard:
Copies the selected reference in the Console to the clipboard.
Syntax ---> CTC
Sytax example ---> [ CTC ] (if the PlayerRef was selected beforehand with "Prid 14", 00000014 is now on the clipboard ready to Ctrl+V.
![](https://cdn.statically.io/img/i.imgur.com/bdnZl41.png)