File information

Last updated

Original upload

Created by

LarannKiar

Uploaded by

LarannKiar

Virus scan

Safe to use

Tags for this mod

About this mod

Console Extender to help mod developments and to provide a better UI for casual debugging..

Requirements
Permissions and credits
About this mod:

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:

Vanilla vs. Custom Console



Smooth Open / Close Animation
(I know the .gif isn't the best way to demonstrate it)



Optimized for large data...:)
(GetReferenceInfo command usage from the another mod)


**********************************************************************************************************************************************



ClearConsoleLog:
Syntax  --->  ClearConsoleLog
Syntax example  --->  [ ClearConsoleLog ]


**********************************************************************************************************************************************



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


**********************************************************************************************************************************************



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.


**********************************************************************************************************************************************



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.


**********************************************************************************************************************************************



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..


**********************************************************************************************************************************************



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



**********************************************************************************************************************************************



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)


**********************************************************************************************************************************************



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".


**********************************************************************************************************************************************



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.


**********************************************************************************************************************************************