About this mod
SFSE plugin that aims to make modding easier. It lets you see and log Faction, MagicEffect, Spell, Perk, Persistence (promoters), Keyword and many other Actor and Object Reference data ingame, all accessible through one console command.
- Requirements
- Permissions and credits
SFSE plugin that lets you see and log Faction, MagicEffect, Spell, Perk, Persistence (promoters), Keyword and many other Actor and Object Reference data ingame, all accessible through one console command.
GetReferenceInfo, GetRefInfo:
The console command to access reference information. Select an actor reference or object reference ("Ref") in the Console then type GetReferenceInfo (or GetRefInfo, both valid and do the same). Alternatively, you can type their RefID like 5986.GetRefInfo. (Papyrus callable).
GetReferenceInfo has optional parameters which can be typed after it to return all kinds of special info about Ref.
Valid Optional Paramaters:
By default, GetReferenceInfo only returns "basic data" like source plugin file, 3D coordinates, names, EditorIDs, data flags, Base Forms and so on. To see or log "additional data" like MagicEffect, Perks, Persistence Promoter forms, use of the parameters below.
Parameter examples:
5986.GetRefInfo editorid ( this would return basic data and would show EditorIDs (since the default is to show only FormIDs) )
5986.GetRefInfo keyword ( this would return basic data and Keyword data )
5986.GetRefInfo "keyword editorid" ( this would return basic data, Keyword data and would show EditorIDs )
5986.GetRefInfo "keyword editorid names" ( this would return basic data, Keyword data, would show EditorIDs and names (DisplayNames / FullNames accordingly) )
5986.GetRefInfo "keyword editorid name log" ( (... see above) and instead of displaying the result in the console log, it would create a log file in ..\Starfield\Data\SFSE)
5986.GetRefInfo "keyword editorid name logtofile_MyLogFile" ( (... see above) but the log file would be "MyLogFile.txt" instead of the default logfile name)
5986.GetRefInfo "spells name aliases" ( return Spells, Quest Aliases and would also show names )
5986.GetRefInfo "promoters" ( return the Persistence Promoter forms of the reference; would show only their FormIDs as neither EditorIDs nor names were requested to be shown )
5986.GetRefInfo all ( return all supported reference data; note: logging, names and EditorIDs must be requested anyway; so the "all" flag only means "return all data" )
5986.GetRefInfo "names magiceffects" ( return ActiveMagicEffects (with Duration, Magnitude and Elapsed Time) and show their names too )
5986.GetRefInfo "spells names" ( return the Spells with their names, e.g. (( [000070CB] ('Crew Stealth - Chameleon' )) )
5986.GetRefInfo "log all" ( log everything to a log file )
Notes:
- certain data is only applicable to Actor references (e.g. Perks)
- most parameters have alternate versions purely for convenience: but all parameter of the same type like "editorid" and "edid" are good
- default logfile name is { GetRefInfo_date_and_time } for example "GetRefInfo_2024-03-29_14-31-38"
- use double quotes " " to protect multi-word parameters, as seen above
Global Parameters: applicable to all (both basic and additional) data
- to show EditorIDs next to FormIDs --> { editorid, edid, editorids }
- to show names (DisplayName / Fullname accordingly) --> { name, names, tesfullname, fullname, fullnames }
- to log in a file instead of the Console --> { log, logging, loggingmode, logtofile }
- to log to a custom named file instead of the default --> { logtofile_(...) } - replace (...) with a file name (without file extension)
- to split long lines --> { linebreak, breakline, splitline, splitlongline, breaklongline, oneentryperline, entryperline } - all accepted in plural forms as well
- to return all supported additional data --> { all, doall, dumpall, processall } this overwrites all data parameters seen below
Data Parameters: to return additional data
- to show Persistence Promoter forms --> { promoter, promoters, persistence }
- to show Keyword data --> { keyword, keywords, kwda, keyworddata }
- to show AI data (AI Package, Combat State, LifeState) --> { ai, aipackage, package, packages, aipackagedata, aidata }
- to show Perks --> { perk, perks, skill, skills, perkdata, skilldata }
- to show Spells --> { spell, spells, spelldata }
- to show ActiveMagicEffect data --> { activeeffect, activeeffects, magiceffect, magiceffects, activemagiceffect, activemagiceffects, effect, effects, activeeffectdata, effectdata, magiceffectdata }
- to show Factions --> { faction, factions, factiondata }
- to show Aliases --> { alias, aliases, aliasdata, questalias, questaliases }
Supported Reference Data:
---> Names
(for all supported data; preferably DisplayName or TESFullName ("FULL - Name" in xEdit) accordingly)
---> RefID
(it's here to make it apparent whether the correct reference was selected in the console)
---> Native Object Handle
(for development purposes; another ID the game uses to identify references in the game world)
---> Memory Address of Ref
(for development purposes)
---> BaseID
(FormID of the Base Form that contains the base data of Ref)
---> LeveledCharacter/LeveledActorBase
(only if applicate to an Actor Ref, e.g. they're a generic crew member)
---> Memory Address of the Base Form
(for development purposes)
---> Pack-In and StorageCell
(Pack-In the Ref is created from; and the Pack-In's "Storage Cell" (SF1Edit >> Pack-In >> CNAM - Cell)
---> Location
(CurrentLocation of Ref)
---> Spaceship
(Current Spaceship Ref is in; returned along with the coordinates)
---> Position and Rotation
(global coordinates and angle: x, y, z)
---> Distance from Player
(in meters and yards)
---> ParentCell
(the Cell that Ref is in)
---> Worldspace
(the Worldspace that Ref is in; in addition to the IDs, it usually shows "Jemison" or "Porrima II" or 'Space')
---> Persistence Promoters
(array of Forms that keep Ref persistent; certain Game Forms interactions may require some refs to become persistent, see [PP] flag)
---> Source Plugin (Mod) File
(which plugin, mod (.esm/.esp) Ref originates from; for runtime created and Leveled NPCs, this is where their Base Form's record lives)
---> Override (Mod) File
(which plugin overrides the Ref and the Base Form's records)
---> Plugin Type (Full/Medium/Small)
(type of plugin; separately for both the Ref and the Base Form)
---> EditorIDs
(for all supported data)
---> FormFlags, ChangeFlags, BaseFormFlags, BaseChangeFlags
(flags store different kind of data; either record flags or ingame set flags)
---> Factions
(array of Factions the actor is member of)
---> AI Package
(the AI that controls the actor)
---> CombatState
(worth checking before one "MoveTo Player" an NPC, just in case)
---> LifeState
(dead NPCs can't be MoveTo normally; it helps with distinguishing it from other scenarios)
---> Perks
(array of Perks ("Skills") the actor currently has)
---> Spells
(array of Spells the actor currently has)
---> ActiveMagicEffects: with duration, magnitude, elapsed time and source form
(sources are usually Potions, Spells and Object Modifications (e.g. see legendary weapons' ActorValue modifiers)
---> Keywords
(array of Keywords attached to Ref; whether they're applied by an OMOD or inherited from the Base Form, it doesn't matter: all are here)
Notes:
---> About the Player Reference (00000014)
---> the player is always loaded in the memory but not due to being promoted (hardcoded editor set persistence)
---> About the Native Object Handle
---> another "ID" to identify references as the game doesn't rely exclusively on FormIDs
---> for example, when one opens the barter or trade menu, the game uses this to store the target inventory owner
---> the object handle of the Player Reference is always 1 in Starfield; GetReferenceInfo intentionally doesn't return it for the Player
---> About Distance from Player
---> most reliable if Ref and the Player are in the same Worldspace; or it returns the distance to the nearest "worldspace gate"
---> About Data Flags
---> FormFlags: most of these are the record flags you see in SF1Edit (BaseFormFlags are the flags of the selected ref's Base Form)
---> ChangeFlags: special game set flags. (They may seem unreasonable but technically the data should be correct).
---> the more informative" selected Console reference line" (the topmost one) is from my other mod Starfield Console Extender
Requirements:
Starfield Script Extender
Address Library for SFSE Plugins