├── .gitattributes ├── .gitignore ├── BetterConsole.vcxproj ├── BetterConsole.vcxproj.filters ├── BetterConsole.vcxproj.user ├── Console.cpp ├── Console.h ├── GameData.cpp ├── GameData.h ├── HookUtil.cpp ├── HookUtil.h ├── README.md ├── RTTI.txt ├── Resource.aps ├── Resource.rc ├── Scaleform.cpp ├── Scaleform.h ├── Settings.cpp ├── Settings.h ├── archive.txt ├── exports.def ├── main.cpp ├── papyrus.txt └── resource.h /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | 7 | # Standard to msysgit 8 | *.doc diff=astextplain 9 | *.DOC diff=astextplain 10 | *.docx diff=astextplain 11 | *.DOCX diff=astextplain 12 | *.dot diff=astextplain 13 | *.DOT diff=astextplain 14 | *.pdf diff=astextplain 15 | *.PDF diff=astextplain 16 | *.rtf diff=astextplain 17 | *.RTF diff=astextplain 18 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Windows image file caches 2 | Thumbs.db 3 | ehthumbs.db 4 | 5 | # Folder config file 6 | Desktop.ini 7 | 8 | # Recycle Bin used on file shares 9 | $RECYCLE.BIN/ 10 | 11 | # Windows Installer files 12 | *.cab 13 | *.msi 14 | *.msm 15 | *.msp 16 | *.log 17 | *.tlog 18 | *.obj 19 | *.pdb 20 | *.idb 21 | *.res 22 | 23 | 24 | # Windows shortcuts 25 | *.lnk 26 | 27 | # ========================= 28 | # Operating System Files 29 | # ========================= 30 | 31 | # OSX 32 | # ========================= 33 | 34 | .DS_Store 35 | .AppleDouble 36 | .LSOverride 37 | 38 | # Thumbnails 39 | ._* 40 | 41 | # Files that might appear in the root of a volume 42 | .DocumentRevisions-V100 43 | .fseventsd 44 | .Spotlight-V100 45 | .TemporaryItems 46 | .Trashes 47 | .VolumeIcon.icns 48 | 49 | # Directories potentially created on remote AFP share 50 | .AppleDB 51 | .AppleDesktop 52 | .x64 53 | Network Trash Folder 54 | Temporary Items 55 | .apdisk 56 | -------------------------------------------------------------------------------- /BetterConsole.vcxproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Debug 6 | Win32 7 | 8 | 9 | Release 10 | Win32 11 | 12 | 13 | Debug 14 | x64 15 | 16 | 17 | Release 18 | x64 19 | 20 | 21 | 22 | {A92D7D6B-1517-4FE5-B419-422C055062AB} 23 | Win32Proj 24 | BetterConsole 25 | 10.0.16299.0 26 | 27 | 28 | 29 | DynamicLibrary 30 | true 31 | v141 32 | Unicode 33 | 34 | 35 | DynamicLibrary 36 | false 37 | v141 38 | true 39 | Unicode 40 | 41 | 42 | DynamicLibrary 43 | true 44 | v141 45 | MultiByte 46 | 47 | 48 | DynamicLibrary 49 | false 50 | v141 51 | true 52 | MultiByte 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | true 74 | 75 | 76 | true 77 | ..\..\..\SteamLibrary\steamapps\common\Fallout 4\Data\F4SE\Plugins 78 | 79 | 80 | false 81 | 82 | 83 | false 84 | E:\SteamLibrary\steamapps\common\Fallout 4\Data\F4SE\Plugins\ 85 | 86 | 87 | 88 | 89 | 90 | Level3 91 | Disabled 92 | WIN32;_DEBUG;_WINDOWS;_USRDLL;BETTERCONSOLE_EXPORTS;%(PreprocessorDefinitions) 93 | 94 | 95 | Windows 96 | true 97 | exports.def 98 | 99 | 100 | 101 | 102 | 103 | 104 | Level3 105 | Disabled 106 | _DEBUG;_WINDOWS;_USRDLL;BETTERCONSOLE_EXPORTS;%(PreprocessorDefinitions) 107 | $(SolutionDir);$(SolutionDir)\.. 108 | common/IPrefix.h 109 | MultiThreadedDebug 110 | 111 | 112 | Windows 113 | true 114 | exports.def 115 | 116 | 117 | 118 | 119 | Level3 120 | 121 | 122 | MaxSpeed 123 | true 124 | true 125 | WIN32;NDEBUG;_WINDOWS;_USRDLL;BETTERCONSOLE_EXPORTS;%(PreprocessorDefinitions) 126 | 127 | 128 | Windows 129 | true 130 | true 131 | true 132 | exports.def 133 | 134 | 135 | 136 | 137 | Level3 138 | 139 | 140 | MaxSpeed 141 | true 142 | true 143 | NDEBUG;_WINDOWS;_USRDLL;BETTERCONSOLE_EXPORTS;%(PreprocessorDefinitions) 144 | $(SolutionDir);$(SolutionDir)\.. 145 | common/IPrefix.h 146 | MultiThreaded 147 | false 148 | 149 | 150 | Windows 151 | true 152 | true 153 | true 154 | exports.def 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | {d4c128a1-73dc-4941-a453-ce55af239ba8} 168 | 169 | 170 | {a236f69d-8ff9-4491-ac5f-45bf49448bbe} 171 | 172 | 173 | {20c6411c-596f-4b85-be4e-8bc91f59d8a6} 174 | 175 | 176 | {83d27534-600c-47b8-8c39-05ba34c3224e} 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | -------------------------------------------------------------------------------- /BetterConsole.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hh;hpp;hxx;hm;inl;inc;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | Source Files 23 | 24 | 25 | Source Files 26 | 27 | 28 | Source Files 29 | 30 | 31 | Source Files 32 | 33 | 34 | Source Files 35 | 36 | 37 | 38 | 39 | Header Files 40 | 41 | 42 | Header Files 43 | 44 | 45 | Header Files 46 | 47 | 48 | Header Files 49 | 50 | 51 | Header Files 52 | 53 | 54 | Header Files 55 | 56 | 57 | 58 | 59 | Resource Files 60 | 61 | 62 | Resource Files 63 | 64 | 65 | Resource Files 66 | 67 | 68 | Resource Files 69 | 70 | 71 | 72 | 73 | Resource Files 74 | 75 | 76 | 77 | 78 | Resource Files 79 | 80 | 81 | -------------------------------------------------------------------------------- /BetterConsole.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | false 5 | WindowsLocalDebugger 6 | E:\SteamLibrary\steamapps\common\Fallout 4\Fallout4.exe 7 | Mixed 8 | 9 | 10 | E:\SteamLibrary\steamapps\common\Fallout 4\Fallout4.exe 11 | ..\..\..\SteamLibrary\steamapps\common\Fallout 4\Data\F4SE\Plugins 12 | NativeOnly 13 | WindowsLocalDebugger 14 | 15 | -------------------------------------------------------------------------------- /Console.cpp: -------------------------------------------------------------------------------- 1 | //#include "Console.h" 2 | //#include "GameData.h" 3 | //#include "F4SE/ObScript.h" 4 | // 5 | // 6 | //#include "F4SE_common/SafeWrite.h" 7 | // 8 | //#include 9 | // 10 | //bool DumpClass_Execute(const ObScriptParam * paramInfo, ObScriptCommand::ScriptData * scriptData, TESObjectREFR * thisObj, void * containingObj, void * scriptObj, void * locals, double& result, UInt32& opcodeOffsetPtr) 11 | //{ 12 | // ObScriptCommand::StringChunk *strChunk = (ObScriptCommand::StringChunk*)scriptData->GetChunk(); 13 | // 14 | // std::string target = strChunk->GetString(); 15 | // 16 | // char * pTerminal = &target[target.size() - 1]; 17 | // 18 | // long iTarget = strtol(&target[0], &pTerminal, 0x10); 19 | // 20 | // ObScriptCommand::IntegerChunk *intChunk = (ObScriptCommand::IntegerChunk*)strChunk->GetNext(); 21 | // int val = intChunk->GetInteger(); 22 | // 23 | // _MESSAGE("%s %08X %d", __FUNCTION__, iTarget, val); 24 | // 25 | // DumpClass(reinterpret_cast(iTarget), val); 26 | // 27 | // return true; 28 | //} 29 | // 30 | // 31 | // 32 | // 33 | //void CollectEffects(Actor* actor) 34 | //{ 35 | // auto pMaigicTarget = &actor->magicTarget; 36 | // auto fnGetEffectList = (BSSimpleList * (**)(MagicTarget*))(*(uintptr_t*)pMaigicTarget + 0x38); 37 | // BSSimpleList * pEffectList = (*fnGetEffectList)(pMaigicTarget); 38 | // 39 | // if (pEffectList != nullptr) 40 | // { 41 | // ++pEffectList->refCount; 42 | // _MESSAGE(""); 43 | // for (size_t i = 0; i < pEffectList->count; ++i) 44 | // { 45 | // _MESSAGE(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>> DumpIndex: %d", i); 46 | // auto pEffect = pEffectList->items[i]; 47 | // if (pEffect != nullptr) 48 | // { 49 | // _MESSAGE("className: %s VTBL: %016I64X", GetObjectClassName(pEffect), *(uintptr_t*)pEffect); 50 | // //_MESSAGE(" %.2f | %d | %08X %.2f | %d | %08X %.2f | %d | %08X %.2f | %d | %08X", pEffect->effect->magnitude, pEffect->effect->magnitude, pEffect->effect->magnitude, pEffect->effect->area, pEffect->effect->area, pEffect->effect->area, pEffect->effect->duration, pEffect->effect->duration, pEffect->effect->duration, pEffect->effect->unk0C, pEffect->effect->unk0C, pEffect->effect->unk0C); 51 | // //_MESSAGE(" %.2f | %d | %08X %.2f | %d | %08X %.2f | %d | %08X %.2f | %d | %08X", pEffect->elapsed, pEffect->elapsed, pEffect->elapsed, pEffect->duration, pEffect->duration, pEffect->duration, pEffect->magnitude, pEffect->magnitude, pEffect->magnitude, pEffect->flags, pEffect->flags, pEffect->flags); 52 | // RelocAddr fnGetEffectSetting = 0xC351A0; 53 | // auto pEffectSetting = fnGetEffectSetting(pEffect); 54 | // if (pEffectSetting != nullptr) 55 | // { 56 | // RelocAddr fnLookUpRefByHandle = 0x23870; 57 | // _MESSAGE("MagicEffect:"); 58 | // _MESSAGE("duratin: %.2f", pEffect->duration); 59 | // _MESSAGE("elapsed: %.2f", pEffect->elapsed); 60 | // _MESSAGE("magnitude: %.2f", pEffect->magnitude); 61 | // _MESSAGE("flags: %08X", pEffect->flags); 62 | // if (pEffect->item) 63 | // { 64 | // TESFullName* pFullName = DYNAMIC_CAST(pEffect->item, MagicItem, TESFullName); 65 | // if (pFullName != nullptr) 66 | // { 67 | // _MESSAGE("spellID: %08X", pEffect->item->formID); 68 | // _MESSAGE("spellName: %s", pFullName->name.c_str()); 69 | // } 70 | // } 71 | // TESFullName* pFullName = DYNAMIC_CAST(pEffectSetting, EffectSetting, TESFullName); 72 | // if (pFullName != nullptr) 73 | // { 74 | // _MESSAGE("EffectSetting:"); 75 | // _MESSAGE("mgefName: %s", pFullName->name.c_str()); 76 | // _MESSAGE("effectFlag: %08X", pEffectSetting->flags); 77 | // _MESSAGE("formID: %08X", pEffectSetting->formID); 78 | // } 79 | // } 80 | // _MESSAGE(""); 81 | // } 82 | // } 83 | // --pEffectList->refCount; 84 | // } 85 | //} 86 | // 87 | //bool DumpConsoleTarget_Execute(const ObScriptParam * paramInfo, ObScriptCommand::ScriptData * scriptData, TESObjectREFR * thisObj, void * containingObj, void * scriptObj, void * locals, double& result, UInt32& opcodeOffsetPtr) 88 | //{ 89 | // TESObjectREFR* pRef = nullptr; 90 | // LookupREFRByHandle(g_consoleHandle, &pRef); 91 | // if (pRef != nullptr) 92 | // { 93 | // Console_Print(" "); 94 | // Console_Print("> refFormID: %08X", pRef->formID); 95 | // Console_Print("> refFormType: %d", pRef->formType); 96 | // Console_Print("> refAddress: %016I64X", (uintptr_t)pRef); 97 | // Console_Print("> fullName: %s", CALL_MEMBER_FN(pRef, GetReferenceName)()); 98 | // Console_Print("> refEditorID: %s", pRef->GetEditorID()); 99 | // } 100 | // 101 | // return true; 102 | //} 103 | // 104 | // 105 | //void RegisterCommands() 106 | //{ 107 | // RelocAddr fnDumpScriptCommands = 0x4EB660; 108 | // for (uint32_t i = 0; i < 0x1333; ++i) 109 | // { 110 | // ObScriptCommand* pCommand = fnDumpScriptCommands(i); 111 | // 112 | // if (pCommand != nullptr && pCommand->longName && pCommand->longName[0] && pCommand->opcode) 113 | // { 114 | // _MESSAGE(""); 115 | // _MESSAGE("longName : %s", pCommand->longName); 116 | // _MESSAGE("shortName: %s", pCommand->shortName); 117 | // _MESSAGE("opCode: %d", pCommand->opcode); 118 | // _MESSAGE("command: %08I64X", (uintptr_t)pCommand - (uintptr_t)GetModuleHandle(NULL)); 119 | // } 120 | // 121 | // if (pCommand != nullptr && pCommand->longName && !strcmp(pCommand->longName, "CellInfo")) 122 | // { 123 | // static ObScriptParam params[] = { 124 | // { "String", ObScriptParam::kType_String, 0 }, 125 | // { "Integer", ObScriptParam::kType_Integer, 0 } 126 | // }; 127 | // 128 | // ObScriptCommand cmd = *pCommand; 129 | // 130 | // cmd.longName = "DumpClass"; 131 | // cmd.shortName = "dc"; 132 | // cmd.helpText = ""; 133 | // cmd.needsParent = 0; 134 | // cmd.numParams = 2; 135 | // cmd.params = params; 136 | // cmd.execute = (ObScript_Execute)DumpClass_Execute; 137 | // cmd.flags = 0; 138 | // 139 | // SafeWriteBuf((uintptr_t)pCommand, &cmd, sizeof(cmd)); 140 | // } 141 | // 142 | // if (pCommand != nullptr && pCommand->longName && !strcmp(pCommand->longName, "SetGamma")) 143 | // { 144 | // ObScriptCommand cmd = *pCommand; 145 | // 146 | // cmd.longName = "DumpConsoleClass"; 147 | // cmd.shortName = "dcc"; 148 | // cmd.helpText = ""; 149 | // cmd.needsParent = 0; 150 | // cmd.numParams = 0; 151 | // cmd.params = nullptr; 152 | // cmd.execute = (ObScript_Execute)DumpConsoleTarget_Execute; 153 | // cmd.flags = 0; 154 | // 155 | // SafeWriteBuf((uintptr_t)pCommand, &cmd, sizeof(cmd)); 156 | // } 157 | // } 158 | // 159 | // 160 | //} -------------------------------------------------------------------------------- /Console.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | void RegisterCommands(); -------------------------------------------------------------------------------- /GameData.cpp: -------------------------------------------------------------------------------- 1 | #include "GameData.h" 2 | #include "F4SE_common/F4SE_version.h" 3 | #include "F4SE_common/Relocation.h" 4 | #include "F4SE_common/SafeWrite.h" 5 | 6 | //RelocAddr g_actorValues(0x585B270); 7 | 8 | uintptr_t HasPerkVisitor::Accept(Entry* pEntry) //bool, don't use bool,VS2015 compiler seems has a bug. 9 | { 10 | if (pEntry != nullptr && pEntry->perk != nullptr) 11 | { 12 | result.push_back(Entry{ pEntry->perk, pEntry->rank }); 13 | } 14 | return 1; 15 | } 16 | 17 | -------------------------------------------------------------------------------- /GameData.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "F4SE/GameData.h" 3 | #include "F4SE/GameReferences.h" 4 | #include "F4SE/GameAPI.h" 5 | #include "F4SE/GameRTTI.h" 6 | #include "F4SE/GameExtraData.h" 7 | 8 | 9 | #include 10 | #include 11 | 12 | class ActiveEffect; 13 | 14 | template 15 | struct SimpleList 16 | { 17 | struct Node 18 | { 19 | T item; 20 | Node * next; 21 | }; 22 | Node node; 23 | 24 | }; 25 | class TESReactionForm : public BaseFormComponent 26 | { 27 | public: 28 | struct RelationData // XNAM 29 | { 30 | TESFaction * faction; // 00 31 | UInt32 modifier; // 04 32 | UInt32 groupCombatReaction; // 08 - Enemy / Friend / Ally 33 | }; 34 | 35 | virtual ~TESReactionForm(); 36 | 37 | // @members 38 | SimpleList relations; // 08 39 | UInt8 unk0C; // 18 ini'd to 14 40 | UInt8 pad0D[3]; // 0D 41 | }; 42 | STATIC_ASSERT(sizeof(TESReactionForm) == 0x20); 43 | 44 | //0x100 45 | class TESFaction : public TESForm, 46 | public TESFullName, 47 | public TESReactionForm 48 | 49 | { 50 | public: 51 | enum FactionFlags 52 | { 53 | kFlag_HiddenFromPC = 1 << 0, // 1 54 | kFlag_SpecialCombat = 1 << 1, // 2 55 | kFlag_TrackCrime = 1 << 6, // 40 56 | kFlag_IgnoreMurder = 1 << 7, // 80 57 | kFlag_IgnoreAssault = 1 << 8, // 100 58 | kFlag_IgnorePickpocket = 1 << 9, // 200 59 | kFlag_IgnoreStealing = 1 << 10, // 400 60 | kFlag_DoReportCrimes = 1 << 11, // 800 61 | kFlag_CrimeGoldDefaults = 1 << 12, // 1000 62 | kFlag_IgnoreTrespass = 1 << 13, // 2000 63 | kFlag_Vender = 1 << 14, // 4000 64 | kFlag_CanBeOwner = 1 << 15, // 8000 65 | kFlag_IgnoreWerewolf = 1 << 16 // 10000 66 | }; 67 | 68 | // 2C 69 | struct CrimeValues // CRVA 70 | { 71 | TESObjectREFR * exteriorJailMarker; // 00 (60) JAIL 60 72 | TESObjectREFR * followerWaitMarker; // 04 (68) WAIT 73 | TESObjectREFR * stolenGoodsContainer; // 08 (70) STOL 74 | TESObjectREFR * playerInventoryContainer; // 0C (78) PLCN 75 | BGSListForm * sharedCrimeFactionList; // 10 (80) CRGR 76 | BGSOutfit * jailOutfit; // 14 (88) JOUT 77 | bool arrest; // 18 (90) 78 | bool attackOnSight; // 19 (91) 79 | UInt16 murder; // 1A (92) 80 | UInt16 assault; // 1C (94) 81 | UInt16 trespass; // 1E (96) 82 | UInt16 pickpocket; // 20 (98) 83 | UInt16 pad22; // 22 (9A) 84 | float stealMult; // 24 (9C) 85 | UInt16 escape; // 28 (A0) 86 | UInt16 werewolf; // 2A (A2) 87 | UInt32 padA4; // A4 88 | }; 89 | 90 | // 20 91 | struct VendorValues // VENV 92 | { 93 | UInt16 startHour; // 00 //A8 94 | UInt16 endHour; // 02 95 | UInt32 radius; // 04 96 | bool buyStolenItems; // 08 //B0 97 | bool tradeEverything; // 09 98 | bool buyNonStolenItems; // 0A 99 | void * packageLocation; // 10 //B8 100 | Condition * condition; // 18 //C0 101 | BGSListForm * buySellList; // 20 //C8 102 | TESObjectREFR * merchantContainer; // 28 //D0 103 | UInt32 unk1C; // 30 //D8 104 | }; 105 | 106 | // 8 107 | struct Data80 108 | { 109 | UInt64 unk0; // 0 110 | UInt64 unk4; // 4 111 | }; 112 | 113 | // @members 114 | UInt64 unk50; // 50 115 | UInt32 factionFlags; // 58 - DATA 116 | CrimeValues crimeValues; // 60 - CRVA 117 | VendorValues vendorValues; // A8 - VENV 118 | Data80 unk80; // E0 119 | UInt32 unk88; // F0 120 | UInt32 unk8C; // F4 121 | float unk90; // F8 122 | UInt32 unk94; // FC 123 | }; 124 | STATIC_ASSERT(offsetof(TESFaction, factionFlags) == 0x58); 125 | STATIC_ASSERT(offsetof(TESFaction, crimeValues) == 0x60); 126 | STATIC_ASSERT(offsetof(TESFaction, vendorValues) == 0xA8); 127 | STATIC_ASSERT(offsetof(TESFaction::VendorValues, merchantContainer) == 0xD0 - 0xA8); 128 | STATIC_ASSERT(sizeof(TESFaction) == 0x100); 129 | 130 | class TESWorldSpace : public TESForm, 131 | public TESFullName, 132 | public TESTexture 133 | { 134 | 135 | }; 136 | 137 | class PerkVisitor 138 | { 139 | public: 140 | struct Entry 141 | { 142 | BGSPerk* perk; 143 | UInt8 rank; 144 | }; 145 | virtual bool Accept(Entry* pEntry) = 0; 146 | }; 147 | 148 | 149 | 150 | class HasPerkVisitor 151 | { 152 | public: 153 | struct Entry 154 | { 155 | BGSPerk* perk; 156 | UInt8 rank; 157 | }; 158 | virtual uintptr_t Accept(Entry* pEntry); 159 | 160 | std::vector result; 161 | }; 162 | 163 | 164 | class ExtraFactionChanges : public BSExtraData 165 | { 166 | public: 167 | enum { kExtraTypeID = kExtraData_FactionChanges }; 168 | 169 | ExtraFactionChanges(); 170 | 171 | virtual ~ExtraFactionChanges(); 172 | 173 | struct FactionInfo 174 | { 175 | TESFaction* faction; 176 | SInt8 rank; 177 | }; 178 | 179 | UInt64 unk08; 180 | tArray factions; 181 | }; 182 | static_assert(sizeof(ExtraFactionChanges::FactionInfo) == 0x10, "ExtraFactionChanges::FactionInfo != 0x10"); 183 | 184 | 185 | 186 | class ActiveEffectReferenceEffectController 187 | { 188 | public: 189 | void ** _vtbl; // 00 190 | ActiveEffect * effect; // 08 191 | }; 192 | 193 | 194 | class ActiveEffect 195 | { 196 | public: 197 | enum 198 | { 199 | kFlag_Inactive = 0x8000 200 | }; 201 | 202 | void ** _vtbl; // 00 203 | UInt64 unk08; // 08 204 | ActiveEffectReferenceEffectController controller; // 10 205 | UInt64 unk20[(0x38 - 0x20) >> 3]; // 20 206 | UInt32 casterHandle; // 38 207 | NiNode * niNode; // 40 NiNode 208 | MagicItem * item; // 48 209 | MagicItem::EffectItem * effect; // 50 effectsettings??????????? 210 | TESObjectREFR * reference; // 58 -0x110 MagicTarget; DYNAMIC_CAST 211 | UInt64 unk68; // 60 212 | UInt64 unk70; // 68 213 | UInt64 unk78; // 70 214 | float elapsed; // 78 215 | float duration; // 7C 216 | float magnitude; // 80 217 | UInt32 flags; // 84 218 | UInt32 unk88; // 88 219 | UInt32 unk8C; // 8C 220 | UInt32 effectNum; // 90 - Somekind of counter used to determine whether the ActiveMagicEffect handle is valid 221 | UInt32 unk94; // 94 222 | ActorValueInfo * actorValue; // 98 - Only seems to appear on value modifiers 223 | float unkA0; // A0 //float 224 | UInt32 unkA4; // A4 225 | }; 226 | static_assert(sizeof(ActiveEffect) == 0xA8, "sizeof(ActiveEffect) != 0xA8"); 227 | 228 | 229 | 230 | template 231 | class BSSimpleList 232 | { 233 | public: 234 | T* items; // 00 235 | UInt64 unk08; 236 | UInt32 count; 237 | UInt32 unk14; 238 | UInt8 refCount; // 18 239 | }; 240 | 241 | struct ActorValueInfoHolder 242 | { 243 | 244 | }; 245 | 246 | template 247 | struct SimpleCollector 248 | { 249 | UInt64 unk00; 250 | T * items; 251 | UInt32 unk10; 252 | UInt64 count; 253 | }; 254 | 255 | //extern RelocAddr g_actorValues; 256 | 257 | 258 | 259 | -------------------------------------------------------------------------------- /HookUtil.cpp: -------------------------------------------------------------------------------- 1 | #include "HookUtil.h" 2 | 3 | namespace HookUtil 4 | { 5 | 6 | template 7 | static inline Ty SafeWrite_Impl(uintptr_t addr, Ty data) 8 | { 9 | DWORD oldProtect = 0; 10 | Ty oldVal = 0; 11 | 12 | if (VirtualProtect((void *)addr, sizeof(Ty), PAGE_EXECUTE_READWRITE, &oldProtect)) 13 | { 14 | Ty *p = (Ty*)addr; 15 | oldVal = *p; 16 | *p = data; 17 | VirtualProtect((void *)addr, sizeof(Ty), oldProtect, &oldProtect); 18 | } 19 | 20 | return oldVal; 21 | } 22 | 23 | uintptr_t SafeWrite64(uintptr_t addr, uintptr_t data) 24 | { 25 | return SafeWrite_Impl(addr, data); 26 | } 27 | } -------------------------------------------------------------------------------- /HookUtil.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace HookUtil 4 | { 5 | uintptr_t SafeWrite64(uintptr_t addr, uintptr_t data); 6 | 7 | template 8 | inline auto SafeWrite64(uintptr_t jumpSrc, TRet(Ty::*fn)(TArg...)) -> decltype(fn) 9 | { 10 | typedef decltype(fn) Fn; 11 | union 12 | { 13 | uintptr_t u64; 14 | Fn fn; 15 | } data; 16 | 17 | data.fn = fn; 18 | 19 | data.u64 = SafeWrite64(jumpSrc, data.u64); 20 | return data.fn; 21 | } 22 | 23 | template 24 | inline auto SafeWrite64(uintptr_t jumpSrc, TRet(*fn)(TArg...)) -> decltype(fn) 25 | { 26 | typedef decltype(fn) Fn; 27 | return (Fn)SafeWrite64(jumpSrc, (uintptr_t)fn); 28 | } 29 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # BetterConsole 2 | This is a F4SE plugin which makes console menu show some extra useful infomation about selected target,for example, target's name, ID, baseID, mod name and so on.This plugin also add some extra info lists to console menu to show selected actor's all kinds of info like factions, perks, active effects, actor values, equipments and so on. 3 | -------------------------------------------------------------------------------- /Resource.aps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kassent/BetterConsole/1ae64d0dee868013591e7df1e0f39accf185cb10/Resource.aps -------------------------------------------------------------------------------- /Resource.rc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kassent/BetterConsole/1ae64d0dee868013591e7df1e0f39accf185cb10/Resource.rc -------------------------------------------------------------------------------- /Scaleform.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "F4SE/ScaleformCallbacks.h" 3 | #include "F4SE/ScaleformValue.h" 4 | 5 | class BetterConsole_GetBaseData : public GFxFunctionHandler 6 | { 7 | public: 8 | virtual void Invoke(Args * args); 9 | }; 10 | 11 | class BetterConsole_WriteLog : public GFxFunctionHandler 12 | { 13 | public: 14 | virtual void Invoke(Args * args); 15 | }; 16 | 17 | class BetterConsole_GetPerkData : public GFxFunctionHandler 18 | { 19 | public: 20 | virtual void Invoke(Args * args); 21 | }; 22 | 23 | class BetterConsole_GetExtraData : public GFxFunctionHandler 24 | { 25 | public: 26 | virtual void Invoke(Args * args); 27 | }; -------------------------------------------------------------------------------- /Settings.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include "Settings.h" 3 | 4 | string Settings::BASEINFO_ID = "ID"; 5 | string Settings::BASEINFO_BASEID = "baseID"; 6 | string Settings::BASEINFO_TYPE = "type"; 7 | string Settings::BASEINFO_LOCATE = "locate"; 8 | string Settings::BASEINFO_DEFINE = "define"; 9 | string Settings::BASEINFO_LASTBASECHANGE = "lastBaseChange"; 10 | string Settings::EXTRAINFO_ID = "ID"; 11 | string Settings::EXTRAINFO_BASEID = "baseID"; 12 | string Settings::EXTRAINFO_TYPE = "type"; 13 | string Settings::EXTRAINFO_NAME = "name"; 14 | string Settings::EXTRAINFO_MOD = "mod"; 15 | string Settings::EXTRAINFO_RACE = "race"; 16 | string Settings::EXTRAINFO_RACEID = "raceID"; 17 | string Settings::EXTRAINFO_SEX = "sex"; 18 | string Settings::EXTRAINFO_LEVEL = "level"; 19 | string Settings::EXTRAINFO_MINLEVEL = "minLevel"; 20 | string Settings::EXTRAINFO_MAXLEVEL = "maxLevel"; 21 | string Settings::EXTRAINFO_PCLVMULT = "PCLevelMult"; 22 | string Settings::EXTRAINFO_UNIQUE = "isUnique"; 23 | string Settings::EXTRAINFO_ESSENTIAL = "isEssential"; 24 | string Settings::EXTRAINFO_PROTECTED = "isProtected"; 25 | string Settings::EXTRAINFO_INVULNERABLE = "isInvulnerable"; 26 | string Settings::EXTRAINFO_MEMORY = "memory"; 27 | string Settings::EXTRAINFO_TRUE = "true"; 28 | string Settings::EXTRAINFO_FALSE = "false"; 29 | string Settings::EXTRAINFO_NULL = Settings::EXTRAINFO_NULL.c_str(); 30 | string Settings::EXTRAINFO_MALE = "male"; 31 | string Settings::EXTRAINFO_FEMALE = "female"; 32 | string Settings::POSITIONINFO = "positon"; 33 | string Settings::POSITIONINFO_POSX = "POS-X"; 34 | string Settings::POSITIONINFO_POSY = "POS-Y"; 35 | string Settings::POSITIONINFO_POSZ = "POS-Z"; 36 | string Settings::POSITIONINFO_ROTX = "ROT-X"; 37 | string Settings::POSITIONINFO_ROTY = "ROT-Y"; 38 | string Settings::POSITIONINFO_ROTZ = "ROT-Z"; 39 | string Settings::CELLINFO = "cell"; 40 | string Settings::CELLINFO_ISINTERIOR = "isInterior"; 41 | string Settings::LOCATIONINFO = "location"; 42 | string Settings::WORLDSPACEINFO = "worldspace"; 43 | string Settings::ENCOUNTERZONEINFO = "encounterZone"; 44 | string Settings::ENCOUNTERZONEINFO_MINLEVEL = "minLevel"; 45 | string Settings::ENCOUNTERZONEINFO_MAXLEVEL = "maxLevel"; 46 | string Settings::ENCOUNTERZONEINFO_CURRENTLEVEL = "currentLevel"; 47 | string Settings::ENCOUNTERZONEINFO_NEVERRESET = "neverReset"; 48 | string Settings::ENCOUNTERZONEINFO_DISABLEBOUNDARY = "disableBoundary"; 49 | string Settings::ENCOUNTERZONEINFO_MATCHPCLEVEL = "matchPCLevel"; 50 | string Settings::ENCOUNTERZONEINFO_ISWORKSHOP = "isWorkshop"; 51 | string Settings::ENCOUNTERZONEINFO_LOCATIONID = "locationID"; 52 | string Settings::PERKINFO = "perks"; 53 | string Settings::PERKINFO_LEVEL = "level"; 54 | string Settings::PERKINFO_RANK = "rank"; 55 | string Settings::FACTIONINFO = "factions"; 56 | string Settings::FACTIONINFO_RANK = "rank"; 57 | string Settings::FACTIONINFO_MERCHANTFACTION = "isMerchantFaction"; 58 | string Settings::FACTIONINFO_MERCHANTCONTAINERID = "merchantContainerID"; 59 | string Settings::EFFECTINFO = "activeEffects"; 60 | string Settings::EFFECTINFO_ELAPSED = "elapsed"; 61 | string Settings::EFFECTINFO_DURATION = "duration"; 62 | string Settings::EFFECTINFO_MAGNITUDE = "magnitude"; 63 | string Settings::EFFECTINFO_INACTIVE = "Inactive"; 64 | string Settings::EFFECTINFO_DETRIMENTAL = "detrimental"; 65 | string Settings::EFFECTINFO_MODIFIEDAV = "modifiedActorValue"; 66 | string Settings::EFFECTINFO_SPELLNAME = "spellName"; 67 | string Settings::EFFECTINFO_SPELLID = "spellID"; 68 | string Settings::EFFECTINFO_SPELLMOD = "spellMod"; 69 | string Settings::EFFECTINFO_SPELLTYPE = "spellType"; 70 | string Settings::AVINFO = "actorValues"; 71 | string Settings::AVINFO_TYPE = "type"; 72 | string Settings::AVINFO_BASEVALUE = "baseValue"; 73 | string Settings::AVINFO_CURRENTVALUE = "currentValue"; 74 | string Settings::EQUIPMENTINFO = "equipments"; 75 | string Settings::EQUIPMENTINFO_SLOTINDEX = "slotIndex"; 76 | string Settings::EQUIPMENTINFO_HEALTH = "health"; 77 | string Settings::EQUIPMENTINFO_CHARGE = "charge"; 78 | string Settings::EQUIPMENTINFO_CLASS = "class"; 79 | string Settings::EQUIPMENTINFO_AMMO = "ammo"; 80 | string Settings::EQUIPMENTINFO_SPEED = "speed"; 81 | string Settings::EQUIPMENTINFO_RANGE = "range"; 82 | string Settings::EQUIPMENTINFO_ACCURACY = "accuracy"; 83 | string Settings::EQUIPMENTINFO_VALUE = "value"; 84 | string Settings::EQUIPMENTINFO_WEIGHT = "weight"; 85 | string Settings::EQUIPMENTINFO_PHYSICALDAMAGE = ""; 86 | string Settings::EQUIPMENTINFO_POISONDAMAGE = ""; 87 | string Settings::EQUIPMENTINFO_FIREDAMAGE = ""; 88 | string Settings::EQUIPMENTINFO_ENERGYDAMAGE = ""; 89 | string Settings::EQUIPMENTINFO_FROSTDAMAGE = ""; 90 | string Settings::EQUIPMENTINFO_RADDAMAGE = ""; 91 | string Settings::EQUIPMENTINFO_PHYSICALRESIST = ""; 92 | string Settings::EQUIPMENTINFO_POISONRESIST = ""; 93 | string Settings::EQUIPMENTINFO_FIRERESIST = ""; 94 | string Settings::EQUIPMENTINFO_ENERGYRESIST = ""; 95 | string Settings::EQUIPMENTINFO_FROSTRESIST = ""; 96 | string Settings::EQUIPMENTINFO_RADRESIST = ""; 97 | 98 | std::vector Settings::DAMAGETYPES = { 99 | "DAMAGE", 100 | "PHYSICAL DAMAGE", 101 | "POISON DAMAGE", 102 | "FIRE DAMAGE", 103 | "ENERGY DAMAGE", 104 | "FROST DAMAGE", 105 | "RADIATION DAMAGE" 106 | }; 107 | std::vector Settings::RESISTTYPES = { 108 | "RESIST", 109 | "PHYSICAL RESIST", 110 | "POISON RESIST", 111 | "FIRE RESIST", 112 | "ENERGY RESIST", 113 | "FROST RESIST", 114 | "RADIATION RESIST" 115 | }; 116 | 117 | #define LoadSetting(key) \ 118 | GetPrivateProfileString(settingsSection, #key, "", sResult.get(), MAX_PATH, configFile); \ 119 | Settings::##key## = sResult.get(); \ 120 | _MESSAGE("%s=%s", #key, sResult.get()); 121 | 122 | #define LoadDamageSetting(key, index) \ 123 | GetPrivateProfileString(settingsSection, #key, "", sResult.get(), MAX_PATH, configFile); \ 124 | Settings::DAMAGETYPES[##index##] = sResult.get(); \ 125 | _MESSAGE("%s=%s", #key, sResult.get()); 126 | 127 | #define LoadResistSetting(key, index) \ 128 | GetPrivateProfileString(settingsSection, #key, "", sResult.get(), MAX_PATH, configFile); \ 129 | Settings::RESISTTYPES[##index##] = sResult.get(); \ 130 | _MESSAGE("%s=%s", #key, sResult.get()); 131 | 132 | void Settings::LoadSettings() 133 | { 134 | constexpr char* configFile = "Data\\F4se\\Plugins\\BetterConsole_Translation.ini"; 135 | constexpr char* settingsSection = "Translations"; 136 | 137 | std::unique_ptr sResult(new char[MAX_PATH]); 138 | 139 | LoadSetting(EXTRAINFO_ID); 140 | LoadSetting(EXTRAINFO_BASEID); 141 | LoadSetting(EXTRAINFO_TYPE); 142 | LoadSetting(EXTRAINFO_NAME); 143 | LoadSetting(EXTRAINFO_MOD); 144 | LoadSetting(EXTRAINFO_RACE); 145 | LoadSetting(EXTRAINFO_RACEID); 146 | LoadSetting(EXTRAINFO_SEX); 147 | LoadSetting(EXTRAINFO_LEVEL); 148 | LoadSetting(EXTRAINFO_MINLEVEL); 149 | LoadSetting(EXTRAINFO_MAXLEVEL); 150 | LoadSetting(EXTRAINFO_PCLVMULT); 151 | LoadSetting(EXTRAINFO_UNIQUE); 152 | LoadSetting(EXTRAINFO_ESSENTIAL); 153 | LoadSetting(EXTRAINFO_PROTECTED); 154 | LoadSetting(EXTRAINFO_INVULNERABLE); 155 | LoadSetting(EXTRAINFO_MEMORY); 156 | LoadSetting(EXTRAINFO_TRUE); 157 | LoadSetting(EXTRAINFO_FALSE); 158 | LoadSetting(EXTRAINFO_NULL); 159 | LoadSetting(EXTRAINFO_MALE); 160 | LoadSetting(EXTRAINFO_FEMALE); 161 | LoadSetting(POSITIONINFO); 162 | LoadSetting(POSITIONINFO_POSX); 163 | LoadSetting(POSITIONINFO_POSY); 164 | LoadSetting(POSITIONINFO_POSZ); 165 | LoadSetting(POSITIONINFO_ROTX); 166 | LoadSetting(POSITIONINFO_ROTY); 167 | LoadSetting(POSITIONINFO_ROTZ); 168 | LoadSetting(CELLINFO); 169 | LoadSetting(CELLINFO_ISINTERIOR); 170 | LoadSetting(LOCATIONINFO); 171 | LoadSetting(WORLDSPACEINFO); 172 | LoadSetting(ENCOUNTERZONEINFO); 173 | LoadSetting(ENCOUNTERZONEINFO_MINLEVEL); 174 | LoadSetting(ENCOUNTERZONEINFO_MAXLEVEL); 175 | LoadSetting(ENCOUNTERZONEINFO_CURRENTLEVEL) 176 | LoadSetting(ENCOUNTERZONEINFO_NEVERRESET); 177 | LoadSetting(ENCOUNTERZONEINFO_DISABLEBOUNDARY); 178 | LoadSetting(ENCOUNTERZONEINFO_MATCHPCLEVEL); 179 | LoadSetting(ENCOUNTERZONEINFO_ISWORKSHOP); 180 | LoadSetting(ENCOUNTERZONEINFO_LOCATIONID); 181 | LoadSetting(PERKINFO); 182 | LoadSetting(PERKINFO_LEVEL); 183 | LoadSetting(PERKINFO_RANK); 184 | LoadSetting(FACTIONINFO); 185 | LoadSetting(FACTIONINFO_RANK); 186 | LoadSetting(FACTIONINFO_MERCHANTFACTION); 187 | LoadSetting(FACTIONINFO_MERCHANTCONTAINERID); 188 | LoadSetting(EFFECTINFO); 189 | LoadSetting(EFFECTINFO_ELAPSED); 190 | LoadSetting(EFFECTINFO_DURATION); 191 | LoadSetting(EFFECTINFO_MAGNITUDE); 192 | LoadSetting(EFFECTINFO_INACTIVE); 193 | LoadSetting(EFFECTINFO_DETRIMENTAL); 194 | LoadSetting(EFFECTINFO_MODIFIEDAV); 195 | LoadSetting(EFFECTINFO_SPELLNAME); 196 | LoadSetting(EFFECTINFO_SPELLID); 197 | LoadSetting(EFFECTINFO_SPELLMOD); 198 | LoadSetting(EFFECTINFO_SPELLTYPE); 199 | LoadSetting(AVINFO); 200 | LoadSetting(AVINFO_TYPE); 201 | LoadSetting(AVINFO_BASEVALUE); 202 | LoadSetting(AVINFO_CURRENTVALUE); 203 | LoadSetting(EQUIPMENTINFO); 204 | LoadSetting(EQUIPMENTINFO_SLOTINDEX); 205 | LoadSetting(EQUIPMENTINFO_HEALTH); 206 | LoadSetting(EQUIPMENTINFO_CHARGE); 207 | LoadSetting(EQUIPMENTINFO_CLASS); 208 | LoadSetting(EQUIPMENTINFO_AMMO); 209 | LoadSetting(EQUIPMENTINFO_SPEED); 210 | LoadSetting(EQUIPMENTINFO_RANGE); 211 | LoadSetting(EQUIPMENTINFO_ACCURACY); 212 | LoadSetting(EQUIPMENTINFO_VALUE); 213 | LoadSetting(EQUIPMENTINFO_WEIGHT); 214 | 215 | LoadDamageSetting(EQUIPMENTINFO_PHYSICALDAMAGE, 1); 216 | LoadDamageSetting(EQUIPMENTINFO_POISONDAMAGE, 2); 217 | LoadDamageSetting(EQUIPMENTINFO_FIREDAMAGE, 3); 218 | LoadDamageSetting(EQUIPMENTINFO_ENERGYDAMAGE, 4); 219 | LoadDamageSetting(EQUIPMENTINFO_FROSTDAMAGE, 5); 220 | LoadDamageSetting(EQUIPMENTINFO_RADDAMAGE, 6); 221 | 222 | LoadResistSetting(EQUIPMENTINFO_PHYSICALRESIST, 1); 223 | LoadResistSetting(EQUIPMENTINFO_POISONRESIST, 2); 224 | LoadResistSetting(EQUIPMENTINFO_FIRERESIST, 3); 225 | LoadResistSetting(EQUIPMENTINFO_ENERGYRESIST, 4); 226 | LoadResistSetting(EQUIPMENTINFO_FROSTRESIST, 5); 227 | LoadResistSetting(EQUIPMENTINFO_RADRESIST, 6); 228 | } -------------------------------------------------------------------------------- /Settings.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include 4 | using std::string; 5 | 6 | struct Settings 7 | { 8 | static string BASEINFO_ID; 9 | static string BASEINFO_BASEID; 10 | static string BASEINFO_TYPE; 11 | static string BASEINFO_LOCATE; 12 | static string BASEINFO_DEFINE; 13 | static string BASEINFO_LASTBASECHANGE; 14 | static string EXTRAINFO_ID; 15 | static string EXTRAINFO_BASEID; 16 | static string EXTRAINFO_TYPE; 17 | static string EXTRAINFO_NAME; 18 | static string EXTRAINFO_MOD; 19 | static string EXTRAINFO_RACE; 20 | static string EXTRAINFO_RACEID; 21 | static string EXTRAINFO_SEX; 22 | static string EXTRAINFO_LEVEL; 23 | static string EXTRAINFO_MINLEVEL; 24 | static string EXTRAINFO_MAXLEVEL; 25 | static string EXTRAINFO_PCLVMULT; 26 | static string EXTRAINFO_UNIQUE; 27 | static string EXTRAINFO_ESSENTIAL; 28 | static string EXTRAINFO_PROTECTED; 29 | static string EXTRAINFO_INVULNERABLE; 30 | static string EXTRAINFO_MEMORY; 31 | static string EXTRAINFO_TRUE; 32 | static string EXTRAINFO_FALSE; 33 | static string EXTRAINFO_NULL; 34 | static string EXTRAINFO_MALE; 35 | static string EXTRAINFO_FEMALE; 36 | static string POSITIONINFO; 37 | static string POSITIONINFO_POSX; 38 | static string POSITIONINFO_POSY; 39 | static string POSITIONINFO_POSZ; 40 | static string POSITIONINFO_ROTX; 41 | static string POSITIONINFO_ROTY; 42 | static string POSITIONINFO_ROTZ; 43 | static string CELLINFO; 44 | static string CELLINFO_ISINTERIOR; 45 | static string LOCATIONINFO; 46 | static string WORLDSPACEINFO; 47 | static string ENCOUNTERZONEINFO; 48 | static string ENCOUNTERZONEINFO_NEVERRESET; 49 | static string ENCOUNTERZONEINFO_MINLEVEL; 50 | static string ENCOUNTERZONEINFO_MAXLEVEL; 51 | static string ENCOUNTERZONEINFO_CURRENTLEVEL; 52 | static string ENCOUNTERZONEINFO_DISABLEBOUNDARY; 53 | static string ENCOUNTERZONEINFO_MATCHPCLEVEL; 54 | static string ENCOUNTERZONEINFO_ISWORKSHOP; 55 | static string ENCOUNTERZONEINFO_LOCATIONID; 56 | static string PERKINFO; 57 | static string PERKINFO_LEVEL; 58 | static string PERKINFO_RANK; 59 | static string FACTIONINFO; 60 | static string FACTIONINFO_RANK; 61 | static string FACTIONINFO_MERCHANTFACTION; 62 | static string FACTIONINFO_MERCHANTCONTAINERID; 63 | static string EFFECTINFO; 64 | static string EFFECTINFO_ELAPSED; 65 | static string EFFECTINFO_DURATION; 66 | static string EFFECTINFO_MAGNITUDE; 67 | static string EFFECTINFO_INACTIVE; 68 | static string EFFECTINFO_DETRIMENTAL; 69 | static string EFFECTINFO_MODIFIEDAV; 70 | static string EFFECTINFO_SPELLNAME; 71 | static string EFFECTINFO_SPELLID; 72 | static string EFFECTINFO_SPELLMOD; 73 | static string EFFECTINFO_SPELLTYPE; 74 | static string AVINFO; 75 | static string AVINFO_TYPE; 76 | static string AVINFO_BASEVALUE; 77 | static string AVINFO_CURRENTVALUE; 78 | static string EQUIPMENTINFO; 79 | static string EQUIPMENTINFO_SLOTINDEX; 80 | static string EQUIPMENTINFO_HEALTH; 81 | static string EQUIPMENTINFO_CHARGE; 82 | static string EQUIPMENTINFO_CLASS; 83 | static string EQUIPMENTINFO_AMMO; 84 | static string EQUIPMENTINFO_SPEED; 85 | static string EQUIPMENTINFO_RANGE; 86 | static string EQUIPMENTINFO_ACCURACY; 87 | static string EQUIPMENTINFO_VALUE; 88 | static string EQUIPMENTINFO_WEIGHT; 89 | 90 | static string EQUIPMENTINFO_PHYSICALDAMAGE; 91 | static string EQUIPMENTINFO_POISONDAMAGE; 92 | static string EQUIPMENTINFO_FIREDAMAGE; 93 | static string EQUIPMENTINFO_ENERGYDAMAGE; 94 | static string EQUIPMENTINFO_FROSTDAMAGE; 95 | static string EQUIPMENTINFO_RADDAMAGE; 96 | static string EQUIPMENTINFO_PHYSICALRESIST; 97 | static string EQUIPMENTINFO_POISONRESIST; 98 | static string EQUIPMENTINFO_FIRERESIST; 99 | static string EQUIPMENTINFO_ENERGYRESIST; 100 | static string EQUIPMENTINFO_FROSTRESIST; 101 | static string EQUIPMENTINFO_RADRESIST; 102 | 103 | static std::vector DAMAGETYPES; 104 | static std::vector RESISTTYPES; 105 | 106 | static void LoadSettings(); 107 | }; -------------------------------------------------------------------------------- /archive.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kassent/BetterConsole/1ae64d0dee868013591e7df1e0f39accf185cb10/archive.txt -------------------------------------------------------------------------------- /exports.def: -------------------------------------------------------------------------------- 1 | EXPORTS 2 | F4SEPlugin_Query 3 | F4SEPlugin_Load 4 | 5 | -------------------------------------------------------------------------------- /main.cpp: -------------------------------------------------------------------------------- 1 | #include "F4SE/PluginAPI.h" 2 | #include "F4SE/GameMenus.h" 3 | #include "f4se/GameReferences.h" 4 | 5 | #include "F4SE_common/F4SE_version.h" 6 | #include "F4SE_common/Relocation.h" 7 | #include "F4SE_common/SafeWrite.h" 8 | #include "F4SE_common/BranchTrampoline.h" 9 | 10 | #include "Scaleform.h" 11 | #include "HookUtil.h" 12 | #include "Console.h" 13 | #include "Settings.h" 14 | 15 | #include 16 | 17 | #include "xbyak/xbyak.h" 18 | 19 | #define PLUGIN_VERSION MAKE_EXE_VERSION(1, 3, 0) 20 | 21 | IDebugLog gLog; 22 | PluginHandle g_pluginHandle = kPluginHandle_Invalid; 23 | F4SEScaleformInterface * g_scaleform = nullptr; 24 | F4SEMessagingInterface * g_messaging = nullptr; 25 | 26 | //#pragma warning (push) 27 | //#pragma warning (disable : 4200) 28 | //struct TypeHierarchy 29 | //{ 30 | // struct Node 31 | // { 32 | // UInt32 type; //32bit RTTIType* 33 | // UInt32 depth; 34 | // UInt32 offset; 35 | // }; 36 | // 37 | // UInt32 memPtr; 38 | // UInt32 unk04; 39 | // UInt32 length; 40 | // UInt32 nodes; //32bit Node** 41 | //}; 42 | // 43 | // 44 | //struct RTTIType 45 | //{ 46 | // void ** vtbl; 47 | // UInt64 data; 48 | // char name[0]; 49 | //}; 50 | // 51 | //struct RTTILocator 52 | //{ 53 | // UInt32 sig, offset, cdOffset; 54 | // UInt32 typeDesc; 55 | // UInt32 herarchyDesc; 56 | // UInt32 thisLocator; 57 | //}; 58 | //#pragma warning (pop) 59 | // 60 | // 61 | //const RelocAddr type_info_vtbl = 0x30CDC08; 62 | // 63 | //const RelocAddr rdata_begin = 0x2C40000; 64 | //const RelocAddr rdata_end = 0x3702000; 65 | // 66 | //const RelocAddr data_begin = 0x3702000; 67 | //const RelocAddr data_end = 0x676D000; 68 | // 69 | //const RelocAddr text_begin = 0x1000; 70 | //const RelocAddr text_end = 0x2C35000; 71 | // 72 | // 73 | // 74 | //void SearchVTable(uintptr_t typeinfo_addr) 75 | //{ 76 | // for (uintptr_t i = rdata_begin.GetUIntPtr(); i < rdata_end.GetUIntPtr(); i += sizeof(int)) 77 | // { 78 | // static uintptr_t iOffset = (uintptr_t)GetModuleHandle(nullptr); 79 | // if ((*reinterpret_cast(i) + iOffset) == typeinfo_addr) 80 | // { 81 | // const RTTILocator * rtti = reinterpret_cast(i - 0x0C); 82 | // 83 | // if (rtti->sig != 1 || rtti->cdOffset != 0) continue; 84 | // 85 | // uintptr_t location = reinterpret_cast(rtti); 86 | // for (uintptr_t i = rdata_begin.GetUIntPtr(); i < rdata_end.GetUIntPtr(); i += sizeof(uintptr_t)) 87 | // { 88 | // uintptr_t * p = reinterpret_cast(i); 89 | // if (*p == location) 90 | // { 91 | // uintptr_t * vtbl = reinterpret_cast(p + 1); 92 | // if (text_begin.GetUIntPtr() <= vtbl[0] && vtbl[0] < text_end.GetUIntPtr()) 93 | // { 94 | // _MESSAGE("VTBL: %08X OFFSET: %04X CLASS: %s", (uintptr_t)vtbl - iOffset, rtti->offset, (char*)(typeinfo_addr + 0x10)); 95 | // TypeHierarchy* pHierarchy = reinterpret_cast(rtti->herarchyDesc + iOffset); 96 | // UInt32 * pInt = reinterpret_cast(pHierarchy->nodes + iOffset); 97 | // 98 | // for (size_t i = 0; i < pHierarchy->length; ++i) 99 | // { 100 | // auto pNode = reinterpret_cast(pInt[i] + iOffset); 101 | // RTTIType* pRTTI = reinterpret_cast(pNode->type + iOffset); 102 | // _MESSAGE(" >> DEPTH: %d OFFSET: %04X CLASS: %s", pNode->depth, pNode->offset, pRTTI->name); 103 | // } 104 | // } 105 | // } 106 | // } 107 | // _MESSAGE(" "); 108 | // } 109 | // } 110 | //}; 111 | 112 | #ifdef DEBUG 113 | 114 | 115 | #include "f4se/PapyrusVM.h" 116 | #include "f4se/PapyrusNativeFunctions.h" 117 | class VirtualMachineEx 118 | { 119 | public: 120 | using FnRegisterFunction = void(__thiscall VirtualMachineEx::*)(IFunction * fn); 121 | static FnRegisterFunction fnRegisterFunction; 122 | 123 | void RegisterFunction_Hook(IFunction * fn) 124 | { 125 | uintptr_t callback = *(uintptr_t*)((uintptr_t)fn + 0x50); 126 | _MESSAGE("<%s> %s (%016I64X) callback=%08X", fn->GetClassName()->c_str(), fn->GetName()->c_str(), (uintptr_t)fn, callback - (uintptr_t)GetModuleHandle(NULL)); 127 | _MESSAGE(""); 128 | (this->*fnRegisterFunction)(fn); 129 | } 130 | 131 | static void InitHook() 132 | { 133 | //Dump all papyrus functions. 134 | fnRegisterFunction = HookUtil::SafeWrite64(RelocAddr(0x030A8608).GetUIntPtr() + 8 * 0x1B, &RegisterFunction_Hook);//V1.10 .?AVVirtualMachine@Internal@BSScript@@ 135 | } 136 | }; 137 | 138 | 139 | VirtualMachineEx::FnRegisterFunction VirtualMachineEx::fnRegisterFunction = nullptr; 140 | 141 | #endif 142 | 143 | #ifdef DEBUG 144 | 145 | #include "F4SE/GameInput.h" 146 | #include "f4se/GameEvents.h" 147 | 148 | ///V1.9.4 149 | class IdleInputEvent 150 | { 151 | 152 | }; 153 | 154 | class PipboyValueChangedEvent 155 | { 156 | 157 | }; 158 | //260 159 | class PipboyMenu : public GameMenuBase, // 000 160 | public BSTEventSink, // 0E0 161 | public BSTEventSink // 0E8 162 | 163 | { 164 | public: 165 | class PipboySubMenu : BSTEventSink 166 | { 167 | public: 168 | ~PipboySubMenu(); 169 | void * unk08; // = address of (PipboyMenu + 0xF0) 170 | GFxValue * stage; 171 | }; 172 | 173 | class PipboyInventoryMenu : public PipboySubMenu 174 | { 175 | public: 176 | ~PipboyInventoryMenu(); 177 | }; 178 | 179 | class PipboyValue 180 | { 181 | public: 182 | union Data 183 | { 184 | UInt32 u32; 185 | SInt32 s32; 186 | bool boolean; 187 | const char * string; 188 | PipboyValue ** values; 189 | double number; 190 | }; 191 | 192 | struct Node 193 | { 194 | UInt64 mask; 195 | PipboyValue * value; 196 | Node * next; 197 | }; 198 | 199 | virtual ~PipboyValue(); 200 | //void ** vtbl; 201 | UInt32 refCount; // 08 ++dword_59F5290 202 | UInt16 unk0C; // 0C ini'd to 0x101 203 | UInt64 unk10; // 10 204 | Data data; // 18 205 | UInt32 unk20; // 20 206 | UInt32 hashCode; // 24 count? 207 | UInt32 count; // 28 208 | }; 209 | 210 | class PipboyObject : public PipboyValue 211 | { 212 | public: 213 | virtual ~PipboyObject(); 214 | Node * end; // 30 215 | UInt64 unk38; // 38 216 | Node * nodes; // 40 217 | UInt64 unk30[(0x98 - 0x48) >> 3]; // 48 218 | 219 | MEMBER_FN_PREFIX(PipboyObject); 220 | DEFINE_MEMBER_FN(GetMember, PipboyValue *, 0xB6BD60, UInt64& key); 221 | DEFINE_MEMBER_FN(DeleteMember, void, 0x0C179F0); 222 | }; 223 | 224 | class PipboyArray : public PipboyValue 225 | { 226 | public: 227 | virtual ~PipboyArray(); 228 | UInt64 unk30; // 30 229 | UInt64 unk38; // 38 230 | void * unk40; // 40 36623E4 231 | UInt64 unk48[(0x80 - 0x48) >> 3]; // 48 232 | 233 | MEMBER_FN_PREFIX(PipboyArray); 234 | DEFINE_MEMBER_FN(GetSize, UInt32, 0xBEA860); 235 | DEFINE_MEMBER_FN(ctor, PipboyArray*, 0xBEA760); 236 | 237 | inline PipboyValue * GetNthItem(UInt32 index) 238 | { 239 | return (index < count) ? data.values[index] : nullptr; 240 | } 241 | }; 242 | 243 | //void ** vtbl; // 02CCCA48 244 | UInt64 unkF0; // seems to be an array. 245 | UInt32 unkF8; 246 | UInt64 unk100; 247 | UInt64 unk108; 248 | UInt64 unk110[(0x160 - 0x110) >> 3]; 249 | PipboyInventoryMenu inventory; // 160 250 | UInt64 unk178[(0x258 - 0x178) >> 3]; 251 | UInt32 unk258; 252 | bool unk25C; 253 | private: 254 | MEMBER_FN_PREFIX(PipboyMenu); 255 | DEFINE_MEMBER_FN(ctor, PipboyMenu*, 0x0B79740); 256 | }; 257 | 258 | static_assert(sizeof(PipboyMenu) == 0x260, "sizeof(PipboyMenu) != 0x260"); 259 | static_assert(sizeof(PipboyMenu::PipboyObject) == 0x98, "sizeof(PipboyMenu::PipboyObject) == 0x98"); 260 | #endif 261 | 262 | #ifdef DEBUG 263 | #include "f4se/GameData.h" 264 | #include "f4se/GameReferences.h" 265 | struct ViewCasterUpdateEvent 266 | { 267 | UInt32 crosshairHandler; // 00 RefHandler 268 | UInt32 unk04; // 04 269 | UInt32 unk08; // 08 270 | UInt32 unk0C; // 0C 271 | UInt64 unk10; // 10 272 | UInt64 unk18; // 18 273 | UInt64 unk20; // 20 274 | bool unk28; // 28 275 | UInt32 unk2C; // 2C 276 | bool unk30; // 30 277 | UInt64 isChanged; // 38 278 | }; 279 | ///V1.10.20 280 | class CrosshairChangeHandler : public BSTEventSink 281 | { 282 | //sub_9E1BE0 283 | //80 7F 40 00 0F 84 8A 00 00 00 80 7F 38 00 8B 47 08 284 | public: 285 | virtual ~CrosshairChangeHandler() { }; 286 | virtual EventResult ReceiveEvent(ViewCasterUpdateEvent * evn, void * dispatcher) override 287 | { 288 | if (evn->isChanged) 289 | { 290 | TESObjectREFR* pRef = nullptr; 291 | LookupREFRByHandle(&evn->crosshairHandler, &pRef); 292 | if (pRef != nullptr) 293 | { 294 | _MESSAGE("name: %s unk30: %d", CALL_MEMBER_FN(pRef, GetReferenceName)(), evn->unk30); 295 | pRef->handleRefObject.DecRefHandle(); 296 | } 297 | } 298 | return kEvent_Continue; 299 | } 300 | static void Register() 301 | { 302 | RelocPtr *> pDispatcher = 0x5A7DAE8;//V1.10 303 | if (*pDispatcher != nullptr) 304 | { 305 | reinterpret_cast *>((uintptr_t)(*pDispatcher) + 0x10)->AddEventSink(new CrosshairChangeHandler()); 306 | } 307 | else 308 | { 309 | _MESSAGE("Can't register crosshair update handler..."); 310 | } 311 | } 312 | }; 313 | 314 | class TESLoadGameHandler : public BSTEventSink 315 | { 316 | public: 317 | virtual ~TESLoadGameHandler() { }; 318 | virtual EventResult ReceiveEvent(TESLoadGameEvent * evn, void * dispatcher) override 319 | { 320 | CrosshairChangeHandler::Register(); 321 | return kEvent_Continue; 322 | } 323 | }; 324 | #endif 325 | 326 | bool ScaleformCallback(GFxMovieView * view, GFxValue * value) 327 | { 328 | GFxMovieRoot * movieRoot = view->movieRoot; 329 | if (movieRoot) 330 | { 331 | GFxValue loaderInfo; 332 | if (movieRoot->GetVariable(&loaderInfo, "root.loaderInfo.url")) 333 | { 334 | std::string sResult = loaderInfo.GetString(); 335 | if (sResult.find("Console.swf") != std::string::npos) 336 | { 337 | RegisterFunction(value, view->movieRoot, "GetBaseData"); 338 | RegisterFunction(value, view->movieRoot, "GetExtraData"); 339 | RegisterFunction(value, view->movieRoot, "WriteLog"); 340 | } 341 | } 342 | } 343 | return true; 344 | } 345 | 346 | //0xF0 347 | class Console : public GameMenuBase 348 | { 349 | public: 350 | using FnPickNext = bool(__thiscall Console::*)(void* pData); 351 | static FnPickNext fnPickNext; 352 | 353 | bool PickNext_Hook(void * pData) 354 | { 355 | GFxValue result(true); 356 | if (stage.IsDisplayObject()) 357 | { 358 | stage.Invoke("canScrollMouse", &result, nullptr, 0); 359 | } 360 | if (!result.GetBool()) 361 | { 362 | return false; 363 | } 364 | return (this->*fnPickNext)(pData); 365 | } 366 | 367 | static const char * GetReferenceName(TESObjectREFR * pRef) 368 | { 369 | return pRef->GetReferenceName(); 370 | } 371 | 372 | static void InitHook() 373 | { 374 | fnPickNext = HookUtil::SafeWrite64(RelocAddr(0x02DAE938).GetUIntPtr() + 8 * 0xF, &PickNext_Hook); //V1.10.26 //48 8D 05 ? ? ? ? BD ? ? ? ? F3 0F 11 44 24 ? //02DAE938 375 | g_branchTrampoline.Write6Call(RelocAddr(0x125CF0F).GetUIntPtr(), (uintptr_t)GetReferenceName); //FF 90 ? ? ? ? 48 89 74 24 ? 4C 89 7C 24 ? 376 | } 377 | }; 378 | Console::FnPickNext Console::fnPickNext = nullptr; 379 | 380 | 381 | 382 | class MenuOpenCloseHandler : public BSTEventSink 383 | { 384 | public: 385 | virtual ~MenuOpenCloseHandler() { }; 386 | virtual EventResult ReceiveEvent(MenuOpenCloseEvent * evn, void * dispatcher) override 387 | { 388 | static BSFixedString console("Console"); 389 | if (evn->menuName == console && evn->isOpen) 390 | { 391 | GFxValue dispatchEvent; 392 | GFxValue eventArgs[3]; 393 | IMenu * pConsole = (*g_ui)->GetMenu(&console); 394 | auto * movieRoot = pConsole->movie->movieRoot; 395 | movieRoot->CreateString(&eventArgs[0], "OnConsoleOpen"); 396 | eventArgs[1].SetBool(true); 397 | eventArgs[2].SetBool(false); 398 | movieRoot->CreateObject(&dispatchEvent, "flash.events.Event", eventArgs, 3); 399 | movieRoot->Invoke("root.dispatchEvent", nullptr, &dispatchEvent, 1); 400 | } 401 | return kEvent_Continue; 402 | }; 403 | 404 | static void Register() 405 | { 406 | static auto * pHandler = new MenuOpenCloseHandler(); 407 | (*g_ui)->menuOpenCloseEventSource.AddEventSink(pHandler); //V1.10.26 408 | } 409 | }; 410 | 411 | void F4SEMessageHandler(F4SEMessagingInterface::Message* msg) 412 | { 413 | if (msg->type == F4SEMessagingInterface::kMessage_GameLoaded) 414 | { 415 | MenuOpenCloseHandler::Register(); 416 | } 417 | } 418 | 419 | 420 | 421 | extern "C" 422 | { 423 | bool F4SEPlugin_Query(const F4SEInterface * f4se, PluginInfo * info) 424 | { 425 | gLog.OpenRelative(CSIDL_MYDOCUMENTS, "\\My Games\\Fallout4\\F4SE\\BetterConsole.log"); 426 | _MESSAGE("BetterConsole: %08X", PLUGIN_VERSION); 427 | 428 | info->infoVersion = PluginInfo::kInfoVersion; 429 | info->name = "BetterConsole"; 430 | info->version = PLUGIN_VERSION; 431 | 432 | g_pluginHandle = f4se->GetPluginHandle(); 433 | 434 | if (f4se->runtimeVersion != RUNTIME_VERSION_1_10_50) 435 | { 436 | MessageBox(nullptr, "UNSUPPORTED GAME VERSION.THE REQUIRED VERSION IS: V1.10.40", "BetterConsole", MB_OK); 437 | return false; 438 | } 439 | 440 | if (f4se->isEditor) 441 | { 442 | _FATALERROR("loaded in editor, marking as incompatible"); 443 | return false; 444 | } 445 | 446 | g_scaleform = (F4SEScaleformInterface *)f4se->QueryInterface(kInterface_Scaleform); 447 | if (!g_scaleform) 448 | { 449 | _FATALERROR("couldn't get scaleform interface"); 450 | return false; 451 | } 452 | 453 | g_messaging = (F4SEMessagingInterface *)f4se->QueryInterface(kInterface_Messaging); 454 | if (!g_messaging) 455 | { 456 | _FATALERROR("couldn't get messaging interface"); 457 | return false; 458 | } 459 | 460 | return true; 461 | } 462 | 463 | 464 | bool F4SEPlugin_Load(const F4SEInterface * f4se) 465 | { 466 | 467 | if (!g_branchTrampoline.Create(1024 * 64)) 468 | { 469 | _ERROR("couldn't create branch trampoline. this is fatal. skipping remainder of init process."); 470 | return false; 471 | } 472 | 473 | if (g_messaging != nullptr) 474 | g_messaging->RegisterListener(g_pluginHandle, "F4SE", F4SEMessageHandler); 475 | 476 | if (g_scaleform) 477 | g_scaleform->Register("BetterConsole", ScaleformCallback); 478 | 479 | Settings::LoadSettings(); 480 | 481 | Console::InitHook(); 482 | 483 | #ifdef DEBUG 484 | 485 | for (uintptr_t i = data_begin.GetUIntPtr(); i < data_end.GetUIntPtr(); i += sizeof(uintptr_t)) 486 | { 487 | uintptr_t * pointer = reinterpret_cast(i); 488 | if (*pointer == type_info_vtbl.GetUIntPtr()) 489 | { 490 | SearchVTable(i); 491 | } 492 | } 493 | VirtualMachineEx::InitHook(); 494 | RegisterCommands(); 495 | 496 | #endif 497 | return true; 498 | } 499 | }; 500 | 501 | 502 | -------------------------------------------------------------------------------- /papyrus.txt: -------------------------------------------------------------------------------- 1 | 2 | AddInventoryEventFilter (000001392221C5D8) callback=013D6120 3 | 4 | CallFunction (0000013922470738) callback=013D6290 5 | 6 | CallFunctionNoWait (00000139224706E0) callback=013D6430 7 | 8 | CancelTimer (0000013922470688) callback=013D6730 9 | 10 | CancelTimerGameTime (0000013922470630) callback=013D67C0 11 | 12 | CastAs (00000139224705D8) callback=013D6850 13 | 14 | GetPropertyValue (0000013922470580) callback=013D69E0 15 | 16 | IsBoundGameObjectAvailable (0000013922470528) callback=013D6A90 17 | 18 | RegisterForAnimationEvent (00000139224704D0) callback=013D6AE0 19 | 20 | RegisterForCustomEvent (0000013922470478) callback=013D6C70 21 | 22 | RegisterForDetectionLOSGain (0000013922470420) callback=013D6F00 23 | 24 | RegisterForDetectionLOSLost (00000139224703C8) callback=013D70A0 25 | 26 | RegisterForDirectLOSGain (0000013922470370) callback=013D7240 27 | 28 | RegisterForDirectLOSLost (0000013922470318) callback=013D7420 29 | 30 | RegisterForDistanceLessThanEvent (00000139224702C0) callback=013D7600 31 | 32 | RegisterForDistanceGreaterThanEvent (0000013922470268) callback=013D7830 33 | 34 | RegisterForHitEvent (0000013922470210) callback=013D7A60 35 | 36 | RegisterForLooksMenuEvent (00000139224701B8) callback=013D7D70 37 | 38 | RegisterForMagicEffectApplyEvent (0000013922470160) callback=013D7EA0 39 | 40 | RegisterForMenuOpenCloseEvent (0000013922470108) callback=013D80E0 41 | 42 | RegisterForPlayerSleep (00000139224700B0) callback=013D8280 43 | 44 | RegisterForPlayerTeleport (0000013922470058) callback=013D83B0 45 | 46 | RegisterForPlayerWait (0000013922470000) callback=013D84E0 47 | 48 | RegisterForRadiationDamageEvent (0000013922479FA0) callback=013D8610 49 | 50 | RegisterForRemoteEvent (0000013922479F48) callback=013D87B0 51 | 52 | RegisterForTrackedStatsEvent (0000013922479EF0) callback=013D8A00 53 | 54 | RegisterForTutorialEvent (0000013922479E98) callback=013D8C10 55 | 56 | RemoveAllInventoryEventFilters (0000013922479E40) callback=013D8DA0 57 | 58 | RemoveInventoryEventFilter (0000013922479DE8) callback=013D8E30 59 | 60 | SendCustomEvent (0000013922479D90) callback=013D8EC0 61 | 62 | SetPropertyValue (0000013922479D38) callback=013D8FF0 63 | 64 | SetPropertyValueNoWait (0000013922479CE0) callback=013D90C0 65 | 66 | StartTimer (0000013922479C88) callback=013D9300 67 | 68 | StartTimerGameTime (0000013922479C30) callback=013D9450 69 | 70 | UnregisterForAllEvents (0000013922479BD8) callback=013D95A0 71 | 72 | UnregisterForAllCustomEvents (0000013922479B80) callback=013D9630 73 | 74 | UnregisterForAllHitEvents (0000013922479B28) callback=013D96C0 75 | 76 | UnregisterForAllMagicEffectApplyEvents (0000013922479AD0) callback=013D9780 77 | 78 | UnregisterForAllMenuOpenCloseEvents (0000013922479A78) callback=013D9840 79 | 80 | UnregisterForAllRadiationDamageEvents (0000013922479A20) callback=013D98D0 81 | 82 | UnregisterForAllRemoteEvents (00000139224799C8) callback=013D9960 83 | 84 | UnregisterForAllTrackedStatsEvents (0000013922479970) callback=013D99F0 85 | 86 | UnregisterForAnimationEvent (0000013922479918) callback=013D9A80 87 | 88 | UnregisterForCustomEvent (00000139224798C0) callback=013D9BC0 89 | 90 | UnregisterForDistanceEvents (0000013922479868) callback=013D9D40 91 | 92 | UnregisterForHitEvent (0000013922479810) callback=013D9EA0 93 | 94 | UnregisterForLooksMenuEvent (00000139224797B8) callback=013DA0C0 95 | 96 | UnregisterForLOS (0000013922479760) callback=013DA150 97 | 98 | UnregisterForMagicEffectApplyEvent (0000013922479708) callback=013DA2D0 99 | 100 | UnregisterForMenuOpenCloseEvent (00000139224796B0) callback=013DA440 101 | 102 | UnregisterForPlayerSleep (0000013922479658) callback=013DA5A0 103 | 104 | UnregisterForPlayerTeleport (0000013922479600) callback=013DA630 105 | 106 | UnregisterForPlayerWait (00000139224795A8) callback=013DA6C0 107 | 108 | UnregisterForRadiationDamageEvent (0000013922479550) callback=013DA750 109 | 110 | UnregisterForRemoteEvent (00000139224794F8) callback=013DA880 111 | 112 | UnregisterForTrackedStatsEvent (00000139224794A0) callback=013DA9B0 113 | 114 | UnregisterForTutorialEvent (0000013922479448) callback=013DAA40 115 | 116 | AddAchievement (00000139224793F0) callback=013BFC50 117 | 118 | AddPerkPoints (0000013922479340) callback=013BFD10 119 | 120 | AdvanceSkill (00000139224792E8) callback=013BFB40 121 | 122 | ClearTempEffects (0000013922479290) callback=013C51D0 123 | 124 | ClearPrison (0000013922479238) callback=013C51F0 125 | 126 | EnablePipboyHDRMask (00000139224791E0) callback=013C5210 127 | 128 | error (0000013922479188) callback=013BFD50 129 | 130 | FadeOutGame (0000013922479130) callback=013BFE00 131 | 132 | FastTravel (0000013922479080) callback=013BFE40 133 | 134 | FindClosestReferenceOfType (0000013922479028) callback=013BFEF0 135 | 136 | FindClosestReferenceOfAnyTypeInList (0000013922478F78) callback=013C0050 137 | 138 | FindRandomReferenceOfType (0000013922478EC8) callback=013C02B0 139 | 140 | FindRandomReferenceOfAnyTypeInList (0000013922478E18) callback=013C0410 141 | 142 | FindClosestActor (0000013922478D68) callback=013C0670 143 | 144 | FindRandomActor (0000013922478D10) callback=013C0700 145 | 146 | ForceDisableSSRGodraysDirLight (0000013922478CB8) callback=013C5220 147 | 148 | ForceThirdPerson (0000013922478C60) callback=013C5250 149 | 150 | ForceFirstPerson (0000013922478C08) callback=013C5270 151 | 152 | ShowFirstPersonGeometry (0000013922478BB0) callback=013C0820 153 | 154 | ShowAllMapMarkers (0000013922478B58) callback=013C08E0 155 | 156 | GetDifficulty (0000013922478B00) callback=013C5290 157 | 158 | GetForm (0000013922478AA8) callback=013C52B0 159 | 160 | GetFormFromFile (0000013922478A50) callback=013C0B00 161 | 162 | GetGameSettingFloat (00000139224789F8) callback=013C0B70 163 | 164 | GetGameSettingInt (00000139224789A0) callback=013C0BD0 165 | 166 | GetGameSettingString (0000013922478948) callback=013C0C30 167 | 168 | GetPlayer (00000139224788F0) callback=013C0CB0 169 | 170 | GetPlayerFollowers (0000013922478898) callback=013C0CC0 171 | 172 | GetPlayerGrabbedRef (0000013922478840) callback=013C0F40 173 | 174 | GetPlayerRadioFrequency (00000139224787E8) callback=013C52C0 175 | 176 | GetPlayersLastRiddenHorse (0000013922478790) callback=013C0FB0 177 | 178 | GetRealHoursPassed (0000013922478738) callback=013C1020 179 | 180 | GetXPForLevel (00000139224786E0) callback=013C10A0 181 | 182 | IncrementSkill (0000013922478688) callback=013C10D0 183 | 184 | IncrementStat (0000013922478630) callback=013C11B0 185 | 186 | InitializeMarkerDistances (00000139224785D8) callback=013C52D0 187 | 188 | IsActivateControlsEnabled (0000013922478580) callback=013C1360 189 | 190 | IsCamSwitchControlsEnabled (0000013922478528) callback=013C13A0 191 | 192 | IsFastTravelControlsEnabled (00000139224784D0) callback=013C13C0 193 | 194 | IsFastTravelEnabled (0000013922478478) callback=013C13E0 195 | 196 | IsFavoritesControlsEnabled (0000013922478420) callback=013C1460 197 | 198 | IsFightingControlsEnabled (00000139224783C8) callback=013C1480 199 | 200 | IsJournalControlsEnabled (0000013922478370) callback=013C14A0 201 | 202 | IsJumpingControlsEnabled (0000013922478318) callback=013C14C0 203 | 204 | IsLookingControlsEnabled (00000139224782C0) callback=013C14E0 205 | 206 | IsMenuControlsEnabled (0000013922478268) callback=013C1500 207 | 208 | IsMovementControlsEnabled (0000013922478210) callback=013C1520 209 | 210 | IsPlayerInRadioRange (00000139224781B8) callback=013C52E0 211 | 212 | IsPlayerListening (0000013922478160) callback=013C52F0 213 | 214 | IsPlayerRadioOn (0000013922478108) callback=013C5300 215 | 216 | IsPluginInstalled (00000139224780B0) callback=013C1570 217 | 218 | IsSneakingControlsEnabled (0000013922478058) callback=013C15B0 219 | 220 | IsVATSControlsEnabled (0000013922478000) callback=013C1380 221 | 222 | IsVATSPlaybackActive (000001392247BFA0) callback=013C5310 223 | 224 | PassTime (000001392247BF48) callback=013C15D0 225 | 226 | PlayBink (000001392247BEF0) callback=013C15F0 227 | 228 | PrecacheCharGen (000001392247BE98) callback=013C5330 229 | 230 | PrecacheCharGenClear (000001392247BE40) callback=013C5340 231 | 232 | QueryStat (000001392247BDE8) callback=013C16E0 233 | 234 | QuitToMainMenu (000001392247BD90) callback=013C17B0 235 | 236 | RequestAutosave (000001392247BD38) callback=013C1820 237 | 238 | RequestModel (000001392247BCE0) callback=013C1840 239 | 240 | RequestSave (000001392247BC88) callback=013C18E0 241 | 242 | RewardPlayerXP (000001392247BC30) callback=013C1900 243 | 244 | ServeTime (000001392247BBD8) callback=013C5350 245 | 246 | SetCameraTarget (000001392247BB80) callback=013C5370 247 | 248 | SetCharGenHUDMode (000001392247BB28) callback=013C5390 249 | 250 | SetInChargen (000001392247BAD0) callback=013C53A0 251 | 252 | ShowPerkVaultBoyOnHUD (000001392247BA78) callback=013C53E0 253 | 254 | SetInsideMemoryHUDMode (000001392247BA20) callback=013C5400 255 | 256 | SetPlayerAIDriven (000001392247B9C8) callback=013C5410 257 | 258 | SetPlayerOnElevator (000001392247B970) callback=013C5430 259 | 260 | SetPlayerRadioFrequency (000001392247B918) callback=013C5450 261 | 262 | SetPlayerReportCrime (000001392247B8C0) callback=013C5460 263 | 264 | SetSittingRotation (000001392247B868) callback=013C1A50 265 | 266 | shakeCamera (000001392247B810) callback=013C1930 267 | 268 | shakeController (000001392247B7B8) callback=013C19E0 269 | 270 | ShowFatigueWarningOnHUD (000001392247B760) callback=013C5480 271 | 272 | ShowTitleSequenceMenu (000001392247B708) callback=013C5490 273 | 274 | HideTitleSequenceMenu (000001392247B6B0) callback=013C54A0 275 | 276 | StartTitleSequence (000001392247B658) callback=013C54B0 277 | 278 | ShowPipboyBootSequence (000001392247B600) callback=013C54C0 279 | 280 | ShowPipboyPlugin (000001392247B5A8) callback=013C54D0 281 | 282 | ShowRaceMenu (000001392247B550) callback=013C54E0 283 | 284 | ShowSPECIALMenu (000001392247B4A0) callback=013C5510 285 | 286 | ShowTrainingMenu (000001392247B448) callback=013C5520 287 | 288 | TriggerScreenBlood (000001392247B3F0) callback=013C5530 289 | 290 | PlayEventCamera (000001392247B398) callback=013C1A70 291 | 292 | StartDialogueCameraOrCenterOnTarget (000001392247B2E8) callback=013C5550 293 | 294 | StopDialogueCamera (000001392247B290) callback=013C5570 295 | 296 | TurnPlayerRadioOn (000001392247B238) callback=013C5590 297 | 298 | UsingGamepad (000001392247B1E0) callback=013C55B0 299 | 300 | warning (000001392247B188) callback=013C1B90 301 | 302 | GetAggressionAV (000001392247B130) callback=013C1BC0 303 | 304 | GetConfidenceAV (000001392247B0D8) callback=013C1BE0 305 | 306 | GetSuspiciousAV (000001392247B080) callback=013C1C00 307 | 308 | GetHealthAV (000001392247B028) callback=013C1C20 309 | 310 | GetStrengthAV (000001392247AFD0) callback=013C1C40 311 | 312 | GetPerceptionAV (000001392247AF78) callback=013C1C60 313 | 314 | GetEnduranceAV (000001392247AF20) callback=013C1C80 315 | 316 | GetCharismaAV (000001392247AEC8) callback=013C1CA0 317 | 318 | GetIntelligenceAV (000001392247AE70) callback=013C1CC0 319 | 320 | GetAgilityAV (000001392247AE18) callback=013C1CE0 321 | 322 | GetLuckAV (000001392247ADC0) callback=013C1D00 323 | 324 | CallGlobalFunction (000001392247AD68) callback=01451390 325 | 326 | CallGlobalFunctionNoWait (000001392247ACB8) callback=014514E0 327 | 328 | GameTimeToString (000001392247AC60) callback=01451770 329 | 330 | GetCurrentGameTime (000001392247AC08) callback=01453B30 331 | 332 | GetCurrentRealTime (000001392247ABB0) callback=014518E0 333 | 334 | GetCurrentStackID (000001392247AB58) callback=01451910 335 | 336 | IsInMenuMode (000001392247AB00) callback=01453B50 337 | 338 | RandomInt (000001392247AAA8) callback=01453B70 339 | 340 | RandomFloat (000001392247AA50) callback=01453B90 341 | 342 | SetINIBool (000001392247A9F8) callback=014519C0 343 | 344 | SetINIFloat (000001392247A9A0) callback=01451B00 345 | 346 | SetINIInt (000001392247A948) callback=01451C40 347 | 348 | SetINIString (000001392247A8F0) callback=01451D80 349 | 350 | Wait (000001392247A898) callback=01451EC0 351 | 352 | WaitGameTime (000001392247A840) callback=01451EF0 353 | 354 | WaitMenuMode (000001392247A7E8) callback=01451F20 355 | 356 | CaptureFrameRate (000001392247A790) callback=01451F50 357 | 358 | StartFrameRateCapture (000001392247A738) callback=01451FD0 359 | 360 | EndFrameRateCapture (000001392247A6E0) callback=01452050 361 | 362 | GetAverageFrameRate (000001392247A688) callback=014520D0 363 | 364 | GetMinFrameRate (000001392247A630) callback=01452150 365 | 366 | GetMaxFrameRate (000001392247A5D8) callback=014521D0 367 | 368 | EnterTestData (000001392247A580) callback=01452250 369 | 370 | PostStartUpTimes (000001392247A4D0) callback=014522D0 371 | 372 | GetCurrentMemory (000001392247A478) callback=01452350 373 | 374 | GetBudgetCount (000001392247A420) callback=014523E0 375 | 376 | GetCurrentBudget (000001392247A3C8) callback=01452460 377 | 378 | GetBudgetLimit (000001392247A370) callback=014524F0 379 | 380 | OverBudget (000001392247A318) callback=01452580 381 | 382 | GetBudgetName (000001392247A2C0) callback=01452600 383 | 384 | CenterOnCell (000001392247A268) callback=013B8B90 385 | 386 | CenterOnCellAndWait (000001392247A1B8) callback=013B8C50 387 | 388 | PlayerMoveToAndWait (000001392247A160) callback=013B8D00 389 | 390 | CloseUserLog (000001392247A108) callback=013B8DB0 391 | 392 | DumpAliasData (000001392247A0B0) callback=013B8DD0 393 | 394 | DumpEventRegistrations (000001392247A058) callback=013B8FD0 395 | 396 | EnableAI (000001392247A000) callback=013B90B0 397 | 398 | EnableCollisions (000001392247DFA0) callback=013B90D0 399 | 400 | EnableDetection (000001392247DF48) callback=013B90F0 401 | 402 | EnableMenus (000001392247DEF0) callback=013B9290 403 | 404 | GetConfigName (000001392247DE98) callback=013B92B0 405 | 406 | GetPlatformName (000001392247DE40) callback=013B92E0 407 | 408 | GetVersionNumber (000001392247DDE8) callback=013B9310 409 | 410 | MessageBox (000001392247DD90) callback=013B9340 411 | 412 | Notification (000001392247DD38) callback=013B9380 413 | 414 | OpenUserLog (000001392247DCE0) callback=013B93C0 415 | 416 | QuitGame (000001392247DC88) callback=013B93E0 417 | 418 | SetGodMode (000001392247DC30) callback=013B9400 419 | 420 | ShowRefPosition (000001392247DBD8) callback=013BB540 421 | 422 | StartScriptProfiling (000001392247DB80) callback=013B9410 423 | 424 | StartStackProfiling (000001392247DB28) callback=013B95E0 425 | 426 | StartStackRootProfiling (000001392247DAD0) callback=013B9680 427 | 428 | StopScriptProfiling (000001392247DA78) callback=013B9940 429 | 430 | StopStackProfiling (000001392247DA20) callback=013B9A00 431 | 432 | StopStackRootProfiling (000001392247D9C8) callback=013B9AA0 433 | 434 | Trace (000001392247D970) callback=013B9B90 435 | 436 | TraceFunction (000001392247D918) callback=013B9C80 437 | 438 | TraceStack (000001392247D8C0) callback=013B9D80 439 | 440 | TraceUser (000001392247D868) callback=013B9EC0 441 | 442 | abs (000001392247D810) callback=013D5820 443 | 444 | acos (000001392247D760) callback=013D4840 445 | 446 | asin (000001392247D708) callback=013D48F0 447 | 448 | atan (000001392247D6B0) callback=013D49A0 449 | 450 | Ceiling (000001392247D658) callback=013D49C0 451 | 452 | cos (000001392247D600) callback=013D4A00 453 | 454 | DegreesToRadians (000001392247D5A8) callback=013D4AB0 455 | 456 | floor (000001392247D550) callback=013D4AD0 457 | 458 | pow (000001392247D4F8) callback=013D4B10 459 | 460 | RadiansToDegrees (000001392247D4A0) callback=013D4B80 461 | 462 | sIn (000001392247D448) callback=013D4BA0 463 | 464 | sqrt (000001392247D3F0) callback=013D5840 465 | 466 | tan (000001392247D398) callback=013D4C50 467 | 468 |
GetFormID (000001392247D340) callback=013EE320 469 | 470 |
GetGoldValue (000001392247D2E8) callback=013ED980 471 | 472 |
HasKeyword (000001392247D290) callback=013ED9E0 473 | 474 |
HasKeywordInFormList (000001392247D238) callback=013EDB30 475 | 476 |
PlayerKnows (000001392247D1E0) callback=013EE330 477 | 478 |
StartObjectProfiling (000001392247D188) callback=013EDCB0 479 | 480 |
StopObjectProfiling (000001392247D130) callback=013EDD80 481 | 482 | GetObjectComponentCount (000001392247D0D8) callback=013FA610 483 | 484 | MergeWith (000001392247D080) callback=012C72E0 485 | 486 | SendStoryEvent (000001392247CFD0) callback=013A7D60 487 | 488 | SendStoryEventAndWait (000001392247CF20) callback=013A7E50 489 | 490 | AddLinkedLocation (000001392247CE70) callback=013AA050 491 | 492 | GetAllLinkedLocations (000001392247CE18) callback=013AA120 493 | 494 | GetKeywordData (000001392247CDC0) callback=013AB1F0 495 | 496 | GetRefTypeAliveCount (000001392247CD68) callback=013AA2A0 497 | 498 | GetRefTypeDeadCount (000001392247CD10) callback=013AA360 499 | 500 | HasCommonParent (000001392247CCB8) callback=013AA420 501 | 502 | HasEverBeenCleared (000001392247CC60) callback=013AB210 503 | 504 | HasRefType (000001392247CC08) callback=013AB220 505 | 506 | IsChild (000001392247CBB0) callback=013AA660 507 | 508 | IsCleared (000001392247CB58) callback=013AB240 509 | 510 | IsLinkedLocation (000001392247CB00) callback=013AA720 511 | 512 | IsLoaded (000001392247CAA8) callback=013AB250 513 | 514 | RemoveLinkedLocation (000001392247CA50) callback=013AA7F0 515 | 516 | Reset (000001392247C9F8) callback=013AB270 517 | 518 | SetCleared (000001392247C9A0) callback=013AB280 519 | 520 | SetKeywordData (000001392247C948) callback=013AA8C0 521 | 522 | Show (000001392247C8F0) callback=013AEAE0 523 | 524 | ShowAsHelpMessage (000001392247C898) callback=013AF020 525 | 526 | UnshowAsHelpMessage (000001392247C840) callback=013AF080 527 | 528 | ClearHelpMessages (000001392247C7E8) callback=013AF410 529 | 530 | ResetHelpMessage (000001392247C790) callback=013AF430 531 | 532 | Add (000001392247C738) callback=013B0C40 533 | 534 | Remove (000001392247C688) callback=013B0C60 535 | 536 | play (000001392247C630) callback=013B4400 537 | 538 | Stop (000001392247C580) callback=013B45D0 539 | 540 | ForceStart (000001392247C528) callback=013B53C0 541 | 542 | GetOwningQuest (000001392247C4D0) callback=013B5A30 543 | 544 | IsActionComplete (000001392247C478) callback=013B5A40 545 | 546 | IsPlaying (000001392247C420) callback=013B5A60 547 | 548 | Pause (000001392247C3C8) callback=013B5A70 549 | 550 | Start (000001392247C370) callback=013B5430 551 | 552 | Stop (000001392247C318) callback=013B54A0 553 | 554 | Apply (000001392247C2C0) callback=013B6D20 555 | 556 | Remove (000001392247C210) callback=013B6D40 557 | 558 | Pause (000001392247C1B8) callback=013B7330 559 | 560 | UnPause (000001392247C108) callback=013B7370 561 | 562 | Mute (000001392247C0B0) callback=013B73B0 563 | 564 | UnMute (000001392247C058) callback=013B73F0 565 | 566 | SetVolume (000001392247C000) callback=013B7430 567 | 568 | SetFrequency (0000013922343BD8) callback=013B7470 569 | 570 | Push (0000013922343B28) callback=012C7D30 571 | 572 | Remove (000001392247FF48) callback=012C7D50 573 | 574 | ShowOnPipboy (000001392247FEF0) callback=013B7F90 575 | 576 | GetAssociatedSkill (000001392247FE40) callback=013BE740 577 | 578 | play (000001392247FDE8) callback=013E8A60 579 | 580 | Stop (000001392247FD38) callback=013E8BD0 581 | 582 | CanPayCrimeGold (000001392247FCE0) callback=013E9B90 583 | 584 | GetCrimeGold (000001392247FC88) callback=013E9BD0 585 | 586 | GetCrimeGoldNonViolent (000001392247FC30) callback=013E9BF0 587 | 588 | GetCrimeGoldViolent (000001392247FBD8) callback=013E9C10 589 | 590 | GetInfamy (000001392247FB80) callback=013E9C30 591 | 592 | GetInfamyNonViolent (000001392247FB28) callback=013E9C50 593 | 594 | GetInfamyViolent (000001392247FAD0) callback=013E9C70 595 | 596 | GetFactionReaction (000001392247FA78) callback=013E9C90 597 | 598 | GetStolenItemValueCrime (000001392247FA20) callback=013E9D30 599 | 600 | GetStolenItemValueNoCrime (000001392247F9C8) callback=013E9D50 601 | 602 | IsFactionInCrimeGroup (000001392247F970) callback=013EB050 603 | 604 | IsPlayerEnemy (000001392247F918) callback=013EB070 605 | 606 | IsPlayerExpelled (000001392247F8C0) callback=013EB080 607 | 608 | ModCrimeGold (000001392247F868) callback=013E9D70 609 | 610 | PlayerPayCrimeGold (000001392247F810) callback=013E9D90 611 | 612 | SendAssaultAlarm (000001392247F7B8) callback=013E9DB0 613 | 614 | SendPlayerToJail (000001392247F760) callback=013E9ED0 615 | 616 | SetAlly (000001392247F708) callback=013E9FD0 617 | 618 | SetCrimeGold (000001392247F6B0) callback=013EA0C0 619 | 620 | SetCrimeGoldViolent (000001392247F658) callback=013EA0E0 621 | 622 | SetEnemy (000001392247F600) callback=013EA100 623 | 624 | SetPlayerEnemy (000001392247F5A8) callback=013EB090 625 | 626 | SetPlayerExpelled (000001392247F550) callback=013EB0B0 627 | 628 | GetAssociatedForm (000001392247F4F8) callback=013EFDF0 629 | 630 | GetValue (000001392247F448) callback=013F0750 631 | 632 | SetValue (000001392247F3F0) callback=013F04A0 633 | 634 | Apply (000001392247F398) callback=013F0D80 635 | 636 | ApplyCrossFade (000001392247F2E8) callback=013F0DA0 637 | 638 | PopTo (000001392247F290) callback=013F0DC0 639 | 640 | Remove (000001392247F1E0) callback=013F0DF0 641 | 642 | RemoveCrossFade (000001392247F188) callback=013F11C0 643 | 644 | AddForm (000001392247F130) callback=013F1C90 645 | 646 | Revert (000001392247F080) callback=013F1F20 647 | 648 | AddForm (000001392247F028) callback=013F2670 649 | 650 | Revert (000001392247EFD0) callback=013F2900 651 | 652 | AddForm (000001392247EF78) callback=013F30C0 653 | 654 | Revert (000001392247EEC8) callback=013F3350 655 | 656 | GetClass (000001392247EE70) callback=013F4780 657 | 658 | GetDeadCount (000001392247EE18) callback=013F3B80 659 | 660 | GetGiftFilter (000001392247EDC0) callback=013F4790 661 | 662 | GetRace (000001392247ED68) callback=013F47A0 663 | 664 | GetLevel (000001392247ED10) callback=013F47B0 665 | 666 | GetLevelExact (000001392247ECB8) callback=013F47D0 667 | 668 | GetSex (000001392247EC60) callback=013F47E0 669 | 670 | GetUniqueActor (000001392247EC08) callback=013F3BB0 671 | 672 | IsEssential (000001392247EBB0) callback=013F47F0 673 | 674 | IsInvulnerable (000001392247EB58) callback=013F4800 675 | 676 | IsProtected (000001392247EB00) callback=013F4820 677 | 678 | IsUnique (000001392247EAA8) callback=013F4830 679 | 680 | SetEssential (000001392247EA50) callback=013F4840 681 | 682 | SetInvulnerable (000001392247E9F8) callback=013F4890 683 | 684 | SetProtected (000001392247E9A0) callback=013F48B0 685 | 686 | SetOutfit (000001392247E948) callback=013F3C00 687 | 688 | IsRadio (000001392247E8F0) callback=013F7220 689 | 690 | EnableFastTravel (000001392247E898) callback=013F75D0 691 | 692 | GetActorOwner (000001392247E840) callback=013F75F0 693 | 694 | GetFactionOwner (000001392247E7E8) callback=013F7620 695 | 696 | IsAttached (000001392247E790) callback=013F7FD0 697 | 698 | IsInterior (000001392247E738) callback=013F7FE0 699 | 700 | IsLoaded (000001392247E6E0) callback=013F7650 701 | 702 | Reset (000001392247E688) callback=013F7670 703 | 704 | SetActorOwner (000001392247E630) callback=013F7FF0 705 | 706 | SetFactionOwner (000001392247E5D8) callback=013F8010 707 | 708 | SetFogColor (000001392247E580) callback=013F76E0 709 | 710 | SetFogPlanes (000001392247E528) callback=013F7780 711 | 712 | SetFogPower (000001392247E4D0) callback=013F8030 713 | 714 | SetPublic (000001392247E478) callback=013F8050 715 | 716 | Activate (000001392247E420) callback=014023B0 717 | 718 | AddDependentAnimatedObjectReference (000001392247E3C8) callback=01402470 719 | 720 | AddItem (000001392247E370) callback=014025A0 721 | 722 | AddKeyword (000001392247E318) callback=014027A0 723 | 724 | AddTextReplacementData (000001392247E2C0) callback=014029A0 725 | 726 | AddToMap (000001392247E268) callback=01402C30 727 | 728 | ApplyConveyorBelt (000001392247E210) callback=014030A0 729 | 730 | ApplyHavokImpulse (000001392247E1B8) callback=01402D80 731 | 732 | ApplyFanMotor (000001392247E160) callback=01403020 733 | 734 | IsFanMotorOn (000001392247E108) callback=01403090 735 | 736 | FanMotorOn (000001392247E0B0) callback=01403070 737 | 738 | AttachMod (000001392247E058) callback=01403570 739 | 740 | AttachModToInventoryItem (000001392247E000) callback=01403650 741 | 742 | AttachTo (0000013922481FA0) callback=014037D0 743 | 744 | BlockActivation (0000013922481F48) callback=01403860 745 | 746 | CalculateEncounterLevel (0000013922481EF0) callback=01403900 747 | 748 | CanFastTravelToMarker (0000013922481E98) callback=01403980 749 | 750 | CanProduceForWorkshop (0000013922481E40) callback=014039F0 751 | 752 | ClearDestruction (0000013922481DE8) callback=01403A00 753 | 754 | ClearFromOldLocations (0000013922481D90) callback=01403AF0 755 | 756 | ConveyorBeltOn (0000013922481D38) callback=01403100 757 | 758 | CountActorsLinkedToMe (0000013922481CE0) callback=01403B60 759 | 760 | countLinkedRefChain (0000013922481C88) callback=01403CA0 761 | 762 | CountRefsLinkedToMe (0000013922481C30) callback=01403C10 763 | 764 | CreateDetectionEvent (0000013922481BD8) callback=01403EA0 765 | 766 | DamageObject (0000013922481B80) callback=01403F80 767 | 768 | DamageValue (0000013922481B28) callback=01404080 769 | 770 | Delete (0000013922481AD0) callback=014043C0 771 | 772 | Disable (0000013922481A78) callback=014047A0 773 | 774 | DisableLinkChain (0000013922481A20) callback=014047D0 775 | 776 | DisableNoWait (00000139224819C8) callback=01404930 777 | 778 | Drop (0000013922481970) callback=01404960 779 | 780 | DropFirstObject (0000013922481918) callback=01404CA0 781 | 782 | DropObject (00000139224818C0) callback=01404D30 783 | 784 | Enable (0000013922481868) callback=01404F60 785 | 786 | EnableFastTravel (0000013922481810) callback=01404F90 787 | 788 | EnableLinkChain (00000139224817B8) callback=01405040 789 | 790 | EnableNoWait (0000013922481760) callback=014051A0 791 | 792 | FindAllReferencesOfType (0000013922481708) callback=014051D0 793 | 794 | FindAllReferencesWithKeyword (00000139224816B0) callback=01405560 795 | 796 | ForceAddRagdollToWorld (0000013922481658) callback=014058D0 797 | 798 | ForceRemoveRagdollFromWorld (0000013922481600) callback=014059C0 799 | 800 | GetActorOwner (00000139224815A8) callback=01405AB0 801 | 802 | GetActorRefOwner (0000013922481550) callback=01405B70 803 | 804 | GetActorsLinkedToMe (00000139224814F8) callback=01405BF0 805 | 806 | GetAngleX (00000139224814A0) callback=01405F70 807 | 808 | GetAngleY (0000013922481448) callback=01405F90 809 | 810 | GetAngleZ (00000139224813F0) callback=01405FB0 811 | 812 | GetAnimationVariableBool (0000013922481398) callback=01405FD0 813 | 814 | GetAnimationVariableInt (0000013922481340) callback=01406080 815 | 816 | GetAnimationVariableFloat (00000139224812E8) callback=01406130 817 | 818 | GetBaseObject (0000013922481290) callback=014061E0 819 | 820 | GetBaseValue (0000013922481238) callback=014062A0 821 | 822 | GetCurrentDestructionStage (00000139224811E0) callback=01406340 823 | 824 | GetCurrentLocation (0000013922481188) callback=01415CB0 825 | 826 | GetCurrentScene (0000013922481130) callback=01415CC0 827 | 828 | getDistance (00000139224810D8) callback=01406350 829 | 830 | GetEditorLocation (0000013922481080) callback=01415CE0 831 | 832 | GetEncounterZone (0000013922481028) callback=01415D00 833 | 834 | GetFactionOwner (0000013922480FD0) callback=01406400 835 | 836 | GetHeadingAngle (0000013922480F78) callback=014064C0 837 | 838 | GetHeight (0000013922480F20) callback=01406610 839 | 840 | GetInventoryValue (0000013922480EC8) callback=01415D10 841 | 842 | GetItemCount (0000013922480E70) callback=01406660 843 | 844 | GetComponentCount (0000013922480E18) callback=01406690 845 | 846 | GetContainer (0000013922480DC0) callback=014066C0 847 | 848 | GetItemHealthPercent (0000013922480D68) callback=01415D20 849 | 850 | GetKey (0000013922480D10) callback=014066D0 851 | 852 | GetLength (0000013922480CB8) callback=01406700 853 | 854 | getLinkedRef (0000013922480C60) callback=01415D30 855 | 856 | GetLinkedRefChain (0000013922480C08) callback=01406750 857 | 858 | getLinkedRefChildren (0000013922480BB0) callback=014069A0 859 | 860 | GetLockLevel (0000013922480B58) callback=01406B10 861 | 862 | GetLocRefTypes (0000013922480B00) callback=01406B50 863 | 864 | GetMass (0000013922480AA8) callback=01406CB0 865 | 866 | GetNthLinkedRef (0000013922480A50) callback=01406CE0 867 | 868 | GetOpenState (00000139224809F8) callback=01406D50 869 | 870 | GetParentCell (00000139224809A0) callback=01415D50 871 | 872 | GetPositionX (0000013922480948) callback=01406D60 873 | 874 | GetPositionY (00000139224808F0) callback=01406D70 875 | 876 | GetPositionZ (0000013922480898) callback=01406D80 877 | 878 | GetRadioFrequency (0000013922480840) callback=01406D90 879 | 880 | GetRadioVolume (00000139224807E8) callback=01406E30 881 | 882 | GetRefsLinkedToMe (0000013922480790) callback=01405DC0 883 | 884 | GetResourceDamage (0000013922480738) callback=01406ED0 885 | 886 | GetSafePosition (00000139224806E0) callback=01407050 887 | 888 | GetWorkshopOwnedObjects (0000013922480688) callback=01407550 889 | 890 | GetWorkshopResourceDamage (0000013922480630) callback=014074B0 891 | 892 | GetWorkshopResourceObjects (00000139224805D8) callback=01407830 893 | 894 | GetScale (0000013922480580) callback=01415D60 895 | 896 | GetTriggerObjectCount (0000013922480528) callback=01415D70 897 | 898 | GetTeleportCell (00000139224804D0) callback=01407990 899 | 900 | GetTransitionCell (0000013922480478) callback=01407A10 901 | 902 | GetTransmitterDistance (0000013922480420) callback=01407A90 903 | 904 | GetValue (00000139224803C8) callback=014072E0 905 | 906 | GetValuePercentage (0000013922480370) callback=014073D0 907 | 908 | GetVoiceType (0000013922480318) callback=01415D80 909 | 910 | GetWidth (00000139224802C0) callback=01407B70 911 | 912 | GetWorldSpace (0000013922480268) callback=01415D90 913 | 914 | HasActorRefOwner (0000013922480210) callback=01407BC0 915 | 916 | HasDirectLOS (00000139224801B8) callback=01407C30 917 | 918 | HasEffectKeyword (0000013922480160) callback=01415DA0 919 | 920 | HasKeyword (0000013922480108) callback=01408050 921 | 922 | HasKeywordInFormList (00000139224800B0) callback=014081A0 923 | 924 | HasNode (0000013922480058) callback=01408320 925 | 926 | HasLocRefType (0000013922480000) callback=014083F0 927 | 928 | HasSharedPowerGrid (0000013922483FA0) callback=01408490 929 | 930 | IgnoreFriendlyHits (0000013922483F48) callback=01408530 931 | 932 | InterruptCast (0000013922483EF0) callback=01408560 933 | 934 | Is3DLoaded (0000013922483E98) callback=014085F0 935 | 936 | IsActivateChild (0000013922483E40) callback=01408620 937 | 938 | IsActivationBlocked (0000013922483DE8) callback=01408640 939 | 940 | IsConveyorBeltOn (0000013922483D90) callback=01403120 941 | 942 | IsCreated (0000013922483D38) callback=01415DC0 943 | 944 | IsDeleted (0000013922483CE0) callback=01415DD0 945 | 946 | IsDestroyed (0000013922483C88) callback=01415DE0 947 | 948 | IsDisabled (0000013922483C30) callback=01415DF0 949 | 950 | IsFurnitureInUse (0000013922483BD8) callback=01408700 951 | 952 | IsFurnitureMarkerInUse (0000013922483B80) callback=014087E0 953 | 954 | IsIgnoringFriendlyHits (0000013922483B28) callback=01415E00 955 | 956 | IsInDialogueWithPlayer (0000013922483AD0) callback=01408830 957 | 958 | IsLockBroken (0000013922483A78) callback=014088A0 959 | 960 | IsLocked (0000013922483A20) callback=014088D0 961 | 962 | IsMapMarkerVisible (00000139224839C8) callback=01408900 963 | 964 | IsOwnedBy (0000013922483970) callback=01408970 965 | 966 | IsPowered (0000013922483918) callback=01408990 967 | 968 | IsQuestItem (00000139224838C0) callback=014089A0 969 | 970 | IsRadioOn (0000013922483868) callback=01408A10 971 | 972 | IsRefInTransitionCell (0000013922483810) callback=01408AB0 973 | 974 | IsTeleportAreaLoaded (00000139224837B8) callback=01408B80 975 | 976 | IsWithinBuildableArea (0000013922483760) callback=01408E40 977 | 978 | KnockAreaEffect (0000013922483708) callback=01408F10 979 | 980 | Lock (00000139224836B0) callback=01408F30 981 | 982 | MakeRadioReceiver (0000013922483658) callback=01415E10 983 | 984 | MakeTransmitterRepeater (00000139224835A8) callback=01408FE0 985 | 986 | ModValue (0000013922483550) callback=014090F0 987 | 988 | MoveTo (00000139224834F8) callback=01409200 989 | 990 | MoveToMyEditorLocation (0000013922483448) callback=014094C0 991 | 992 | MoveToNearestNavmeshLocation (00000139224833F0) callback=014096B0 993 | 994 | MoveToNode (0000013922483398) callback=014098A0 995 | 996 | OpenWorkshopSettlementMenu (0000013922483340) callback=01409DE0 997 | 998 | OpenWorkshopSettlementMenuEx (00000139224832E8) callback=01409F50 999 | 1000 | RaidTargetsAvailable (0000013922483290) callback=0140A110 1001 | 1002 | PauseAudio (0000013922483238) callback=01415E40 1003 | 1004 | ResumeAudio (00000139224831E0) callback=01415E60 1005 | 1006 | PlaceAtMe (0000013922483188) callback=0140AB40 1007 | 1008 | PlaceActorAtMe (00000139224830D8) callback=0140ADC0 1009 | 1010 | PlaceAtNode (0000013922483080) callback=0140B180 1011 | 1012 | PlayAnimation (0000013922483028) callback=0140B3C0 1013 | 1014 | PlayAnimationAndWait (0000013922482FD0) callback=0140B570 1015 | 1016 | PlayGamebryoAnimation (0000013922482F78) callback=0140B7C0 1017 | 1018 | PlayImpactEffect (0000013922482F20) callback=0140B990 1019 | 1020 | PlaySyncedAnimationSS (0000013922482EC8) callback=0140BA90 1021 | 1022 | PlaySyncedAnimationAndWaitSS (0000013922482E70) callback=0140BC10 1023 | 1024 | PlayTerrainEffect (0000013922482DC0) callback=0140BFA0 1025 | 1026 | PreloadExteriorCell (0000013922482D68) callback=0140C140 1027 | 1028 | PreloadTargetArea (0000013922482D10) callback=0140C220 1029 | 1030 | ProcessTrapHit (0000013922482CB8) callback=0140C460 1031 | 1032 | PushActorAway (0000013922482C60) callback=0140C600 1033 | 1034 | RecalculateResources (0000013922482C08) callback=0140C840 1035 | 1036 | RemoveAllItems (0000013922482BB0) callback=0140C8F0 1037 | 1038 | RemoveComponents (0000013922482B58) callback=0140C960 1039 | 1040 | RemoveDependentAnimatedObjectReference (0000013922482B00) callback=0140CB30 1041 | 1042 | RemoveItem (0000013922482AA8) callback=0140CC50 1043 | 1044 | RemoveItemByComponent (0000013922482A50) callback=0140CE70 1045 | 1046 | RemoveKeyword (00000139224829F8) callback=0140D090 1047 | 1048 | RemoveAllMods (00000139224829A0) callback=0140D360 1049 | 1050 | RemoveAllModsFromInventoryItem (0000013922482948) callback=0140D3F0 1051 | 1052 | RemoveMod (00000139224828F0) callback=0140D420 1053 | 1054 | RemoveModFromInventoryItem (0000013922482898) callback=0140D5C0 1055 | 1056 | Repair (0000013922482840) callback=0140D5F0 1057 | 1058 | Reset (00000139224827E8) callback=0140D610 1059 | 1060 | ResetKeyword (0000013922482790) callback=0140D740 1061 | 1062 | RestoreValue (0000013922482738) callback=0140D940 1063 | 1064 | ReverseConveyorBelt (00000139224826E0) callback=01403130 1065 | 1066 | Say (0000013922482688) callback=0140DD60 1067 | 1068 | SayCustom (0000013922482630) callback=0140DDC0 1069 | 1070 | SendStealAlarm (00000139224825D8) callback=0140DE70 1071 | 1072 | SetActivateTextOverride (0000013922482580) callback=0140DF50 1073 | 1074 | SetActorCause (0000013922482528) callback=0140DF90 1075 | 1076 | SetActorOwner (00000139224824D0) callback=0140E010 1077 | 1078 | SetActorRefOwner (0000013922482478) callback=0140E1B0 1079 | 1080 | SetAngle (0000013922482420) callback=0140E340 1081 | 1082 | SetAnimationVariableBool (00000139224823C8) callback=0140E590 1083 | 1084 | SetAnimationVariableFloat (0000013922482370) callback=0140E630 1085 | 1086 | SetAnimationVariableInt (0000013922482318) callback=0140E6D0 1087 | 1088 | SetAttractionActive (00000139224822C0) callback=0140E770 1089 | 1090 | SetConveyorBeltVelocity (0000013922482268) callback=01403150 1091 | 1092 | SetDestroyed (0000013922482210) callback=01415E80 1093 | 1094 | SetDirectAtTarget (00000139224821B8) callback=0140E7B0 1095 | 1096 | SetScale (0000013922482160) callback=0140E970 1097 | 1098 | SetFactionOwner (0000013922482108) callback=0140EA70 1099 | 1100 | SetHarvested (00000139224820B0) callback=0140EC00 1101 | 1102 | SetLinkedRef (0000013922482058) callback=01415EA0 1103 | 1104 | SetLockLevel (0000013922482000) callback=0140EC60 1105 | 1106 | SetLocRefType (0000013922396948) callback=0140ECE0 1107 | 1108 | SetMotionType (00000139223965D8) callback=0140EF70 1109 | 1110 | SetNoFavorAllowed (0000013922396420) callback=01415EC0 1111 | 1112 | SetOpen (0000013922396840) callback=0140F1C0 1113 | 1114 | SetPersistLoc (0000013922487FA0) callback=0140F270 1115 | 1116 | SetPlayerHasTaken (0000013922487F48) callback=0140F300 1117 | 1118 | SetPosition (0000013922487EF0) callback=0140F4A0 1119 | 1120 | SetRadioOn (0000013922487E98) callback=0140F6D0 1121 | 1122 | SetRadioFrequency (0000013922487E40) callback=0140F750 1123 | 1124 | SetRadioVolume (0000013922487DE8) callback=0140F7B0 1125 | 1126 | SetValue (0000013922487D90) callback=0140F810 1127 | 1128 | SplineTranslateTo (0000013922487D38) callback=0140F990 1129 | 1130 | SplineTranslateToRefNode (0000013922487CE0) callback=0140FC30 1131 | 1132 | StartWorkshop (0000013922487C30) callback=0140FF40 1133 | 1134 | StopTranslation (0000013922487BD8) callback=0140FFE0 1135 | 1136 | StoreInWorkshop (0000013922487B80) callback=01410150 1137 | 1138 | TranslateTo (0000013922487B28) callback=01410200 1139 | 1140 | WaitFor3DLoad (0000013922487AD0) callback=014105A0 1141 | 1142 | WaitForAnimationEvent (0000013922487A78) callback=01410490 1143 | 1144 | WaitForWorkshopResourceRecalc (0000013922487A20) callback=014106F0 1145 | 1146 | Fire (00000139224879C8) callback=01446360 1147 | 1148 | GetAmmo (0000013922487970) callback=014464D0 1149 | 1150 | GetOwningQuest (0000013922487918) callback=014479A0 1151 | 1152 | GetTemplate (00000139224878C0) callback=01447780 1153 | 1154 | CompleteAllObjectives (0000013922487868) callback=0144A4D0 1155 | 1156 | CompleteQuest (0000013922487810) callback=01448810 1157 | 1158 | FailAllObjectives (00000139224877B8) callback=0144A4E0 1159 | 1160 | GetAlias (0000013922487760) callback=0144A4F0 1161 | 1162 | GetCurrentStageID (0000013922487708) callback=0144A510 1163 | 1164 | HasObjective (00000139224876B0) callback=01448880 1165 | 1166 | IsActive (0000013922487658) callback=0144A520 1167 | 1168 | IsCompleted (0000013922487600) callback=0144A530 1169 | 1170 | IsObjectiveCompleted (00000139224875A8) callback=01448920 1171 | 1172 | IsObjectiveDisplayed (0000013922487550) callback=014489C0 1173 | 1174 | IsObjectiveFailed (00000139224874F8) callback=01448A60 1175 | 1176 | IsRunning (00000139224874A0) callback=0144A550 1177 | 1178 | IsStageDone (0000013922487448) callback=014488A0 1179 | 1180 | IsStarting (00000139224873F0) callback=0144A580 1181 | 1182 | IsStopping (0000013922487398) callback=0144A5B0 1183 | 1184 | IsStopped (0000013922487340) callback=0144A5E0 1185 | 1186 | Reset (00000139224872E8) callback=01448B00 1187 | 1188 | ResetSpeechChallenges (0000013922487290) callback=0144A610 1189 | 1190 | SetActive (0000013922487238) callback=0144A620 1191 | 1192 | SetCurrentStageID (00000139224871E0) callback=01448FB0 1193 | 1194 | SetObjectiveCompleted (0000013922487188) callback=01448BB0 1195 | 1196 | SetObjectiveDisplayed (0000013922487130) callback=01448D10 1197 | 1198 | SetObjectiveFailed (00000139224870D8) callback=01448E60 1199 | 1200 | Start (0000013922487080) callback=014491F0 1201 | 1202 | Stop (0000013922487028) callback=01449340 1203 | 1204 | UpdateCurrentInstanceGlobal (0000013922486FD0) callback=0144A640 1205 | 1206 | play (0000013922486F78) callback=0144CEE0 1207 | 1208 | PlayAndWait (0000013922486F20) callback=0144D080 1209 | 1210 | StopInstance (0000013922486EC8) callback=0144D270 1211 | 1212 | SetInstanceVolume (0000013922486E70) callback=0144D310 1213 | 1214 | Add (0000013922486E18) callback=0144E410 1215 | 1216 | GetOwningQuest (0000013922486DC0) callback=0144E800 1217 | 1218 | HasBeenSaid (0000013922486D68) callback=0144EA50 1219 | 1220 | AddPerk (0000013922486D10) callback=01386CB0 1221 | 1222 | AddSpell (0000013922486CB8) callback=01387100 1223 | 1224 | AllowBleedoutDialogue (0000013922486C60) callback=013908F0 1225 | 1226 | AllowPCDialogue (0000013922486C08) callback=013872F0 1227 | 1228 | AttachAshPile (0000013922486BB0) callback=01387310 1229 | 1230 | AttemptAnimationSetSwitch (0000013922486B58) callback=01387640 1231 | 1232 | CanFlyHere (0000013922486B00) callback=01390920 1233 | 1234 | ChangeAnimArchetype (0000013922486AA8) callback=01387670 1235 | 1236 | ChangeAnimFlavor (0000013922486A50) callback=01387700 1237 | 1238 | ChangeHeadPart (00000139224869F8) callback=01387790 1239 | 1240 | ClearArrested (00000139224869A0) callback=01387890 1241 | 1242 | ClearExpressionOverride (0000013922486948) callback=013878F0 1243 | 1244 | ClearExtraArrows (00000139224868F0) callback=01387970 1245 | 1246 | ClearLookAt (0000013922486898) callback=01387980 1247 | 1248 | Dismember (0000013922486840) callback=013879F0 1249 | 1250 | Dismount (00000139224867E8) callback=01390930 1251 | 1252 | DispelAllSpells (0000013922486790) callback=01390940 1253 | 1254 | DispelSpell (0000013922486738) callback=01386F60 1255 | 1256 | DoCombatSpellApply (00000139224866E0) callback=01390960 1257 | 1258 | EnableAI (0000013922486688) callback=01390980 1259 | 1260 | EndDeferredKill (0000013922486630) callback=0138C390 1261 | 1262 | EquipItem (00000139224865D8) callback=01387BA0 1263 | 1264 | EquipSpell (0000013922486580) callback=01388080 1265 | 1266 | EvaluatePackage (0000013922486528) callback=01388220 1267 | 1268 | GetAllCombatTargets (00000139224864D0) callback=01388250 1269 | 1270 | GetBribeAmount (0000013922486478) callback=013909A0 1271 | 1272 | GetCrimeFaction (0000013922486420) callback=013909B0 1273 | 1274 | GetCombatState (00000139224863C8) callback=01388400 1275 | 1276 | GetCombatTarget (0000013922486370) callback=01388410 1277 | 1278 | GetCurrentPackage (0000013922486318) callback=01388470 1279 | 1280 | GetDialogueTarget (00000139224862C0) callback=013884E0 1281 | 1282 | GetEquippedSpell (0000013922486268) callback=01388550 1283 | 1284 | GetEquippedWeapon (0000013922486210) callback=01388620 1285 | 1286 | GetEquippedShield (00000139224861B8) callback=013909C0 1287 | 1288 | GetEquippedItemType (0000013922486160) callback=01388670 1289 | 1290 | GetFactionRank (0000013922486108) callback=01388760 1291 | 1292 | GetFactionReaction (00000139224860B0) callback=01388810 1293 | 1294 | GetFlyingState (0000013922486058) callback=01390A00 1295 | 1296 | GetGoldAmount (0000013922486000) callback=01390A20 1297 | 1298 | GetHighestRelationshipRank (0000013922396688) callback=013888B0 1299 | 1300 | GetKiller (0000013922489FA0) callback=013888F0 1301 | 1302 | GetForcedLandingMarker (0000013922489F48) callback=01388970 1303 | 1304 | GetLevel (0000013922489EF0) callback=01390A30 1305 | 1306 | GetLeveledActorBase (0000013922489E98) callback=013889D0 1307 | 1308 | GetLightLevel (0000013922489E40) callback=01390A50 1309 | 1310 | GetLowestRelationshipRank (0000013922489DE8) callback=013889F0 1311 | 1312 | GetNoBleedoutRecovery (0000013922489D90) callback=01390A60 1313 | 1314 | GetPlayerControls (0000013922489D38) callback=01388A30 1315 | 1316 | GetRace (0000013922489CE0) callback=01390A80 1317 | 1318 | GetRelationshipRank (0000013922489C88) callback=013891C0 1319 | 1320 | GetSitState (0000013922489C30) callback=013892A0 1321 | 1322 | GetSleepState (0000013922489BD8) callback=01389300 1323 | 1324 | HasAssociation (0000013922489B80) callback=01388A70 1325 | 1326 | HasDetectionLOS (0000013922489B28) callback=01388B70 1327 | 1328 | HasFamilyRelationship (0000013922489AD0) callback=01388BD0 1329 | 1330 | HasMagicEffect (0000013922489A78) callback=01386FC0 1331 | 1332 | HasMagicEffectWithKeyword (0000013922489A20) callback=01387060 1333 | 1334 | HasParentRelationship (00000139224899C8) callback=01388C50 1335 | 1336 | HasPerk (0000013922489970) callback=01386DC0 1337 | 1338 | HasSpell (0000013922489918) callback=01387220 1339 | 1340 | IsAIEnabled (00000139224898C0) callback=01390A90 1341 | 1342 | IsAlarmed (0000013922489868) callback=01388D20 1343 | 1344 | IsAlerted (0000013922489810) callback=01390AB0 1345 | 1346 | IsAllowedToFly (00000139224897B8) callback=01388D60 1347 | 1348 | IsArrested (0000013922489760) callback=01388D70 1349 | 1350 | IsArrestingTarget (0000013922489708) callback=01390AC0 1351 | 1352 | IsBeingRidden (00000139224896B0) callback=01390AD0 1353 | 1354 | IsBeingRiddenBy (0000013922489658) callback=01390AE0 1355 | 1356 | IsBleedingOut (0000013922489600) callback=01388DA0 1357 | 1358 | IsBribed (00000139224895A8) callback=01390B00 1359 | 1360 | IsChild (0000013922489550) callback=01390B10 1361 | 1362 | IsCommandedActor (00000139224894F8) callback=01390B30 1363 | 1364 | IsDead (00000139224894A0) callback=01388DC0 1365 | 1366 | IsDetectedBy (0000013922489448) callback=01388DE0 1367 | 1368 | IsDismembered (00000139224893F0) callback=01388EA0 1369 | 1370 | IsDoingFavor (0000013922489398) callback=01390B50 1371 | 1372 | IsEquipped (0000013922489340) callback=01388FA0 1373 | 1374 | IsEssential (00000139224892E8) callback=01390B60 1375 | 1376 | IsFlying (0000013922489290) callback=01390B80 1377 | 1378 | IsGhost (0000013922489238) callback=01390BA0 1379 | 1380 | IsGuard (00000139224891E0) callback=01390BB0 1381 | 1382 | IsHostileToActor (0000013922489188) callback=01390BD0 1383 | 1384 | IsInCombat (0000013922489130) callback=01390BF0 1385 | 1386 | IsInFaction (00000139224890D8) callback=01390C10 1387 | 1388 | IsInIronSights (0000013922489080) callback=01390C30 1389 | 1390 | IsInKillMove (0000013922489028) callback=01390C50 1391 | 1392 | IsInScene (0000013922488FD0) callback=01390C60 1393 | 1394 | IsIntimidated (0000013922488F78) callback=01390C80 1395 | 1396 | IsOnMount (0000013922488F20) callback=01390C90 1397 | 1398 | IsOverEncumbered (0000013922488EC8) callback=01390CA0 1399 | 1400 | IsPlayersLastRiddenHorse (0000013922488E70) callback=01389170 1401 | 1402 | IsPlayerTeammate (0000013922488E18) callback=01390CB0 1403 | 1404 | IsRunning (0000013922488DC0) callback=01390CD0 1405 | 1406 | IsSeatOccupied (0000013922488D68) callback=01390CE0 1407 | 1408 | IsSneaking (0000013922488D10) callback=01390D00 1409 | 1410 | IsSprinting (0000013922488CB8) callback=01390D60 1411 | 1412 | IsTalking (0000013922488C60) callback=01390D80 1413 | 1414 | IsTrespassing (0000013922488C08) callback=01390DA0 1415 | 1416 | IsUnconscious (0000013922488BB0) callback=01390DC0 1417 | 1418 | IsWeaponDrawn (0000013922488B58) callback=01390DE0 1419 | 1420 | KillSilent (0000013922488B00) callback=013895B0 1421 | 1422 | Kill (0000013922488AA8) callback=013895E0 1423 | 1424 | MarkItemAsFavorite (0000013922488A50) callback=01387CE0 1425 | 1426 | ModFactionRank (00000139224889F8) callback=01389610 1427 | 1428 | MoveToPackageLocation (00000139224889A0) callback=01389990 1429 | 1430 | OpenInventory (0000013922488948) callback=01389B30 1431 | 1432 | PathToReference (00000139224888F0) callback=01389B60 1433 | 1434 | PlayIdle (0000013922488898) callback=01389C50 1435 | 1436 | PlayIdleAction (0000013922488840) callback=0138A0B0 1437 | 1438 | PlayIdleWithTarget (00000139224887E8) callback=01389C80 1439 | 1440 | PlaySubGraphAnimation (0000013922488790) callback=01389CB0 1441 | 1442 | RemoveFromFaction (0000013922488738) callback=01390E00 1443 | 1444 | RemoveFromAllFactions (00000139224886E0) callback=01389D90 1445 | 1446 | RemovePerk (0000013922488688) callback=01386E60 1447 | 1448 | RemoveSpell (0000013922488630) callback=01386F00 1449 | 1450 | ResetHealthAndLimbs (00000139224885D8) callback=01390E20 1451 | 1452 | Resurrect (0000013922488580) callback=01389F40 1453 | 1454 | SendAssaultAlarm (0000013922488528) callback=0138A0E0 1455 | 1456 | SendTrespassAlarm (00000139224884D0) callback=0138A140 1457 | 1458 | SetAlert (0000013922488478) callback=01390E30 1459 | 1460 | SetAllowFlying (0000013922488420) callback=0138A1F0 1461 | 1462 | SetAlpha (00000139224883C8) callback=0138A2D0 1463 | 1464 | SetAttackActorOnSight (0000013922488370) callback=01390E50 1465 | 1466 | SetAvoidPlayer (0000013922488318) callback=0138ADD0 1467 | 1468 | SetBribed (00000139224882C0) callback=01390E70 1469 | 1470 | SetCommandState (0000013922488268) callback=0138AE20 1471 | 1472 | SetCanDoCommand (0000013922488210) callback=01390E90 1473 | 1474 | SetCombatStyle (00000139224881B8) callback=01390EB0 1475 | 1476 | SetCrimeFaction (0000013922488160) callback=01390ED0 1477 | 1478 | SetCriticalStage (0000013922488108) callback=0138A350 1479 | 1480 | SetDoingFavor (00000139224880B0) callback=01390EF0 1481 | 1482 | ChangeAnimFaceArchetype (0000013922488058) callback=0138A420 1483 | 1484 | SetEssential (0000013922488000) callback=0138A660 1485 | 1486 | SetEyeTexture (000001392248BFA0) callback=0138A4A0 1487 | 1488 | SetFactionRank (000001392248BF48) callback=0138A690 1489 | 1490 | SetGhost (000001392248BEF0) callback=01390F10 1491 | 1492 | SetHasCharGenSkeleton (000001392248BE98) callback=01390F30 1493 | 1494 | SetHeadTracking (000001392248BE40) callback=0138A730 1495 | 1496 | SetForcedLandingMarker (000001392248BDE8) callback=0138A750 1497 | 1498 | SetIntimidated (000001392248BD90) callback=01390F50 1499 | 1500 | SetLookAt (000001392248BD38) callback=0138A7B0 1501 | 1502 | SetNoBleedoutRecovery (000001392248BCE0) callback=01390F70 1503 | 1504 | SetNotShowOnStealthMeter (000001392248BC88) callback=01390F90 1505 | 1506 | SetOutfit (000001392248BC30) callback=0138A930 1507 | 1508 | SetOverrideVoiceType (000001392248BBD8) callback=0138B0A0 1509 | 1510 | SetPlayerControls (000001392248BB80) callback=0138AA50 1511 | 1512 | SetPlayerResistingArrest (000001392248BB28) callback=0138AAC0 1513 | 1514 | SetPlayerTeammate (000001392248BAD0) callback=01390FB0 1515 | 1516 | SetProtected (000001392248BA78) callback=0138AAF0 1517 | 1518 | SetRace (000001392248BA20) callback=0138AB20 1519 | 1520 | SetRelationshipRank (000001392248B9C8) callback=0138ABB0 1521 | 1522 | SetRestrained (000001392248B970) callback=0138AD70 1523 | 1524 | SetSubGraphFloatVariable (000001392248B918) callback=0138AE90 1525 | 1526 | SetUnconscious (000001392248B8C0) callback=0138AF60 1527 | 1528 | SetVehicle (000001392248B868) callback=0138B060 1529 | 1530 | ShowBarterMenu (000001392248B810) callback=0138B0E0 1531 | 1532 | SnapIntoInteraction (000001392248B7B8) callback=0138B0F0 1533 | 1534 | StartCannibal (000001392248B760) callback=0138B1C0 1535 | 1536 | StartCombat (000001392248B708) callback=0138B300 1537 | 1538 | StartDeferredKill (000001392248B6B0) callback=0138C380 1539 | 1540 | StartFrenzyAttack (000001392248B658) callback=0138B510 1541 | 1542 | StartVampireFeed (000001392248B600) callback=0138B5C0 1543 | 1544 | StopCombat (000001392248B5A8) callback=0138B760 1545 | 1546 | StopCombatAlarm (000001392248B550) callback=0138B7C0 1547 | 1548 | SwitchToPowerArmor (000001392248B4F8) callback=0138B850 1549 | 1550 | TrapSoul (000001392248B4A0) callback=0138B9E0 1551 | 1552 | UnequipAll (000001392248B448) callback=0138BA00 1553 | 1554 | UnequipItem (000001392248B3F0) callback=0138BA10 1555 | 1556 | UnequipItemSlot (000001392248B398) callback=0138BD20 1557 | 1558 | UnequipSpell (000001392248B340) callback=01388150 1559 | 1560 | UnLockOwnedDoorsInCell (000001392248B2E8) callback=0138BDF0 1561 | 1562 | WillIntimidateSucceed (000001392248B290) callback=01390FD0 1563 | 1564 | WornHasKeyword (000001392248B238) callback=0138BEA0 1565 | 1566 | WouldBeStealing (000001392248B1E0) callback=0138BF40 1567 | 1568 | WouldRefuseCommand (000001392248B188) callback=0138BFF0 1569 | 1570 | StartSneaking (000001392248B130) callback=0138C090 1571 | 1572 | DrawWeapon (000001392248B0D8) callback=0138C160 1573 | 1574 | DogPlaceInMouth (000001392248B080) callback=0138C180 1575 | 1576 | DogDropItems (000001392248B028) callback=01390FE0 1577 | 1578 | GetOwningQuest (000001392248AFD0) callback=013A55C0 1579 | 1580 | StartObjectProfiling (000001392248AF78) callback=013A5100 1581 | 1582 | StopObjectProfiling (000001392248AF20) callback=013A51D0 1583 | 1584 | ApplyToRef (000001392248AEC8) callback=013B13F0 1585 | 1586 | Clear (000001392248AE70) callback=013B14E0 1587 | 1588 | GetReference (000001392248AE18) callback=013B1530 1589 | 1590 | ForceRefTo (000001392248ADC0) callback=013B15C0 1591 | 1592 | RemoveFromRef (000001392248AD68) callback=013B1630 1593 | 1594 | addRef (000001392248AD10) callback=013B29B0 1595 | 1596 | Find (000001392248ACB8) callback=013B2A00 1597 | 1598 | GetAt (000001392248AC60) callback=013B2A40 1599 | 1600 | GetCount (000001392248AC08) callback=013B2B30 1601 | 1602 | RemoveAll (000001392248ABB0) callback=013B2B50 1603 | 1604 | RemoveRef (000001392248AB58) callback=013B2BA0 1605 | 1606 | Clear (000001392248AB00) callback=013A90F0 1607 | 1608 | GetLocation (000001392248AAA8) callback=013A9140 1609 | 1610 | ForceLocationTo (000001392248AA50) callback=013A9160 1611 | 1612 | AddForm (000001392248A9F8) callback=013D3480 1613 | 1614 | Find (000001392248A9A0) callback=013D3040 1615 | 1616 | GetAt (000001392248A948) callback=013D34A0 1617 | 1618 | GetSize (000001392248A8F0) callback=013D3090 1619 | 1620 | HasForm (000001392248A898) callback=013D34C0 1621 | 1622 | RemoveAddedForm (000001392248A840) callback=013D34E0 1623 | 1624 | Revert (000001392248A7E8) callback=013D3500 1625 | 1626 | Cast (000001392248A790) callback=013E7250 1627 | 1628 | RemoteCast (000001392248A738) callback=013E7380 1629 | 1630 | IsHostile (000001392248A6E0) callback=013E7750 1631 | 1632 | Cast (000001392248A688) callback=013E57D0 1633 | 1634 | Dispel (000001392248A5D8) callback=01384830 1635 | 1636 | GetBaseObject (000001392248A528) callback=01384840 1637 | 1638 | GetCasterActor (000001392248A4D0) callback=01384250 1639 | 1640 | GetTargetActor (000001392248A478) callback=013842B0 1641 | 1642 | StartObjectProfiling (000001392248A420) callback=013842D0 1643 | 1644 | StopObjectProfiling (000001392248A3C8) callback=013843A0 1645 | 1646 | EnableAmbientParticles (000001392248A370) callback=0144FAA0 1647 | 1648 | FindWeather (000001392248A2C0) callback=0144FAB0 1649 | 1650 | ForceActive (000001392248A268) callback=0144F390 1651 | 1652 | GetClassification (000001392248A210) callback=0144F3F0 1653 | 1654 | GetCurrentWeather (000001392248A1B8) callback=0144FAE0 1655 | 1656 | GetCurrentWeatherTransition (000001392248A160) callback=0144FB00 1657 | 1658 | GetOutgoingWeather (000001392248A108) callback=0144FB20 1659 | 1660 | GetSkyMode (000001392248A0B0) callback=0144FB40 1661 | 1662 | ReleaseOverride (000001392248A058) callback=0144FB60 1663 | 1664 | SetActive (000001392248A000) callback=0144F3B0 1665 | 1666 | IsHostile (000001392248DFA0) callback=013CEA80 1667 | 1668 | LearnEffect (000001392248DEF0) callback=013CEAA0 1669 | 1670 | LearnNextEffect (000001392248DE98) callback=013CEAC0 1671 | 1672 | LearnAllEffects (000001392248DE40) callback=013CEAD0 1673 | 1674 | IsHostile (000001392248DDE8) callback=013A4AC0 1675 | 1676 | IsHostile (000001392248DD38) callback=013BEF70 1677 | 1678 | CountActors (000001392248DCE0) callback=013A6360 1679 | 1680 | GetActors (000001392248DC88) callback=013A6130 1681 | 1682 | Reset (000001392248DC30) callback=013A6100 1683 | 1684 | Create (000001392248DBD8) callback=013CF880 1685 | 1686 | Delete (000001392248DB28) callback=013CF990 1687 | 1688 | DisablePlayerControls (000001392248DAD0) callback=013CF9E0 1689 | 1690 | EnableActivate (000001392248DA78) callback=013CFAE0 1691 | 1692 | EnableVATS (000001392248DA20) callback=013CFB10 1693 | 1694 | EnableCamSwitch (000001392248D9C8) callback=013CFB40 1695 | 1696 | EnableFastTravel (000001392248D970) callback=013CFB70 1697 | 1698 | EnableFavorites (000001392248D918) callback=013CFBA0 1699 | 1700 | EnableFighting (000001392248D8C0) callback=013CFBD0 1701 | 1702 | EnableJournal (000001392248D868) callback=013CFC00 1703 | 1704 | EnableJumping (000001392248D810) callback=013CFC30 1705 | 1706 | EnableLooking (000001392248D7B8) callback=013CFC60 1707 | 1708 | EnableMenu (000001392248D760) callback=013CFC90 1709 | 1710 | EnableMovement (000001392248D708) callback=013CFCC0 1711 | 1712 | EnableRunning (000001392248D6B0) callback=013CFCF0 1713 | 1714 | EnableSprinting (000001392248D658) callback=013CFD30 1715 | 1716 | EnableZKey (000001392248D600) callback=013CFD70 1717 | 1718 | EnablePlayerControls (000001392248D5A8) callback=013CFDA0 1719 | 1720 | EnableSneaking (000001392248D550) callback=013CFEA0 1721 | 1722 | IsActivateEnabled (000001392248D4F8) callback=013CFED0 1723 | 1724 | IsVATSEnabled (000001392248D4A0) callback=013CFEF0 1725 | 1726 | IsCamSwitchEnabled (000001392248D448) callback=013CFF10 1727 | 1728 | IsFastTravelEnabled (000001392248D3F0) callback=013CFF30 1729 | 1730 | IsFavoritesEnabled (000001392248D398) callback=013CFF50 1731 | 1732 | IsFightingEnabled (000001392248D340) callback=013CFF70 1733 | 1734 | IsJournalEnabled (000001392248D2E8) callback=013CFF90 1735 | 1736 | IsJumpingEnabled (000001392248D290) callback=013CFFB0 1737 | 1738 | IsLookingEnabled (000001392248D238) callback=013CFFD0 1739 | 1740 | IsMenuEnabled (000001392248D1E0) callback=013CFFF0 1741 | 1742 | IsMovementEnabled (000001392248D188) callback=013D0010 1743 | 1744 | IsRunningEnabled (000001392248D130) callback=013D0060 1745 | 1746 | IsSprintingEnabled (000001392248D0D8) callback=013D0080 1747 | 1748 | IsZKeyEnabled (000001392248D080) callback=013D00A0 1749 | 1750 | IsSneakingEnabled (000001392248D028) callback=013D00C0 1751 | 1752 | Reset (000001392248CFD0) callback=013D16A0 1753 | 1754 | RegisterForKey (000001392248CF78) callback=EF29E8D0 1755 | 1756 | UnregisterForKey (000001392248CF20) callback=EF29E9A0 1757 | 1758 | RegisterForControl (000001392248CEC8) callback=EF29EA70 1759 | 1760 | UnregisterForControl (000001392248CE70) callback=EF29EB40 1761 | 1762 | RegisterForExternalEvent (000001392248CE18) callback=EF29EC10 1763 | 1764 | UnregisterForExternalEvent (000001392248CDC0) callback=EF29ED20 1765 | 1766 | RegisterForCameraState (000001392248CD68) callback=EF29EDF0 1767 | 1768 | UnregisterForCameraState (000001392248CD10) callback=EF29EEC0 1769 | 1770 | RegisterForFurnitureEvent (000001392248CCB8) callback=EF29EF90 1771 | 1772 | UnregisterForFurnitureEvent (000001392248CC60) callback=EF29F720 1773 | 1774 | GetParents (000001392248CC08) callback=EF283400 1775 | 1776 | GetConsumeSpell (000001392248CBB0) callback=EF2A8C40 1777 | 1778 | SetConsumeSpell (000001392248CB58) callback=EF2A8C50 1779 | 1780 | GetContactSpell (000001392248CB00) callback=EF2A8C60 1781 | 1782 | SetContactSpell (000001392248CAA8) callback=EF2A8C70 1783 | 1784 | GetVersion (000001392248CA50) callback=EF262510 1785 | 1786 | GetVersionMinor (000001392248C9A0) callback=EF284EB0 1787 | 1788 | GetVersionBeta (000001392248C948) callback=EF284EC0 1789 | 1790 | GetVersionRelease (000001392248C8F0) callback=EF284ED0 1791 | 1792 | GetPluginVersion (000001392248C898) callback=EF284EE0 1793 | 1794 | LeftShift (000001392248C840) callback=EF293470 1795 | 1796 | RightShift (000001392248C7E8) callback=EF293490 1797 | 1798 | LogicalAnd (000001392248C790) callback=EF2934B0 1799 | 1800 | LogicalOr (000001392248C738) callback=EF2934C0 1801 | 1802 | LogicalXor (000001392248C6E0) callback=EF2934D0 1803 | 1804 | LogicalNot (000001392248C688) callback=EF2934E0 1805 | 1806 | Log (000001392248C630) callback=EF2934F0 1807 | 1808 | Exp (000001392248C5D8) callback=EF293500 1809 | 1810 |
GetName (000001392248C580) callback=EF285570 1811 | 1812 |
SetName (000001392248C528) callback=EF2855F0 1813 | 1814 |
GetDescription (000001392248C4D0) callback=EF285D90 1815 | 1816 |
GetWeight (000001392248C478) callback=EF285640 1817 | 1818 |
SetWeight (000001392248C420) callback=EF285690 1819 | 1820 |
SetGoldValue (000001392248C3C8) callback=EF2856E0 1821 | 1822 |
GetKeywords (000001392248C370) callback=EF285720 1823 | 1824 |
HasWorldModel (000001392248C318) callback=EF285820 1825 | 1826 |
GetWorldModelPath (000001392248C2C0) callback=EF285870 1827 | 1828 |
SetWorldModelPath (000001392248C268) callback=EF285930 1829 | 1830 |
GetIconPath (000001392248C210) callback=EF2859A0 1831 | 1832 |
SetIconPath (000001392248C1B8) callback=EF285A50 1833 | 1834 |
GetMessageIconPath (000001392248C160) callback=EF285AA0 1835 | 1836 |
SetMessageIconPath (000001392248C108) callback=EF285B50 1837 | 1838 |
GetEnchantment (000001392248C0B0) callback=EF285BA0 1839 | 1840 |
SetEnchantment (000001392248C058) callback=EF285BF0 1841 | 1842 |
GetEnchantmentValue (000001392248C000) callback=EF285C40 1843 | 1844 |
SetEnchantmentValue (0000013922491FA0) callback=EF285CA0 1845 | 1846 |
GetEquipType (0000013922491F48) callback=EF285CF0 1847 | 1848 |
SetEquipType (0000013922491EF0) callback=EF285D40 1849 | 1850 | GetAllMods (0000013922491E98) callback=EF296CC0 1851 | 1852 | GetConnectedObjects (0000013922491E40) callback=EF297510 1853 | 1854 | AttachWire (0000013922491DE8) callback=EF297450 1855 | 1856 | GetDisplayName (0000013922491D90) callback=EF297730 1857 | 1858 | GetInventoryItems (0000013922491D38) callback=EF297A80 1859 | 1860 | GetInventoryWeight (0000013922491CE0) callback=EF297A60 1861 | 1862 | GetConnectPoints (0000013922491C88) callback=EF298300 1863 | 1864 | TransmitConnectedPower (0000013922491C30) callback=EF2987D0 1865 | 1866 | GetTemplate (0000013922491BD8) callback=EF27B020 1867 | 1868 | HasHeadPartOverlays (0000013922491B80) callback=EF27B060 1869 | 1870 | GetHeadParts (0000013922491B28) callback=EF27B080 1871 | 1872 | GetOutfit (0000013922491AD0) callback=EF27B170 1873 | 1874 | SetBodyWeight (0000013922491A78) callback=EF27B190 1875 | 1876 | GetBodyWeight (0000013922491A20) callback=EF27B2A0 1877 | 1878 | GetWornItem (00000139224919C8) callback=EF278720 1879 | 1880 | GetWornItemMods (0000013922491970) callback=EF278A80 1881 | 1882 | QueueUpdate (0000013922491918) callback=EF278C10 1883 | 1884 | GetFurnitureReference (00000139224918C0) callback=EF278C40 1885 | 1886 | GetType (0000013922491868) callback=EF289B80 1887 | 1888 | GetExtraParts (0000013922491810) callback=EF289B90 1889 | 1890 | HasExtraPart (00000139224917B8) callback=EF289DA0 1891 | 1892 | IsExtraPart (0000013922491760) callback=EF289D80 1893 | 1894 | GetValidRaces (0000013922491708) callback=EF289DE0 1895 | 1896 | SetValidRaces (00000139224916B0) callback=EF289DF0 1897 | 1898 | GetCurrentConsoleRef (0000013922491658) callback=EF2878E0 1899 | 1900 | GetInstalledPlugins (0000013922491600) callback=EF287930 1901 | 1902 | GetInstalledLightPlugins (0000013922490E18) callback=EF287C00 1903 | 1904 | GetPluginDependencies (0000013922490DC0) callback=EF287ED0 1905 | 1906 | SetGameSettingFloat (0000013922490E70) callback=EF288030 1907 | 1908 | SetGameSettingInt (0000013922490D68) callback=EF2880C0 1909 | 1910 | SetGameSettingBool (0000013922490EC8) callback=EF288150 1911 | 1912 | SetGameSettingString (0000013922490F20) callback=EF2881E0 1913 | 1914 | VarToVarArray (0000013922490D10) callback=EF2A82F0 1915 | 1916 | VarArrayToVar (0000013922490CB8) callback=EF2A8370 1917 | 1918 | set (0000013922490C60) callback=EF2A4B30 1919 | 1920 | Get (0000013922490BB0) callback=EF2A4C50 1921 | 1922 | Invoke (0000013922490B58) callback=EF2A4CE0 1923 | 1924 | Load (0000013922490B00) callback=EF2A4DE0 1925 | 1926 | GetEmbeddedMod (0000013922490A50) callback=EF2A90F0 1927 | 1928 | SetEmbeddedMod (00000139224909F8) callback=EF2A9100 1929 | 1930 | GetPropertyModifiers (00000139224909A0) callback=EF2953E0 1931 | 1932 | GetMaxRank (0000013922490948) callback=EF295A00 1933 | 1934 | SetMaxRank (00000139224908F0) callback=EF295A10 1935 | 1936 | GetPriority (0000013922490898) callback=EF295A30 1937 | 1938 | SetPriority (0000013922490840) callback=EF295A40 1939 | 1940 | GetLooseMod (00000139224907E8) callback=EF295A60 1941 | 1942 | GetAttackDamage (0000013922490790) callback=EF28B1B0 1943 | 1944 | SetAttackDamage (0000013922490738) callback=EF28B240 1945 | 1946 | GetDamageTypes (00000139224906E0) callback=EF28B530 1947 | 1948 | SetDamageTypes (0000013922490688) callback=EF28B810 1949 | 1950 | GetAmmoCapacity (0000013922490630) callback=EF28B2E0 1951 | 1952 | SetAmmoCapacity (00000139224905D8) callback=EF28B370 1953 | 1954 | GetAmmo (0000013922490580) callback=EF28B410 1955 | 1956 | SetAmmo (0000013922490528) callback=EF28B4A0 1957 | 1958 | GetAccuracyBonus (00000139224904D0) callback=EF28BB10 1959 | 1960 | SetAccuracyBonus (0000013922490478) callback=EF28BBA0 1961 | 1962 | GetActionPointCost (0000013922490420) callback=EF28C100 1963 | 1964 | SetActionPointCost (00000139224903C8) callback=EF28C1A0 1965 | 1966 | GetAttackDelay (0000013922490370) callback=EF28BEA0 1967 | 1968 | SetAttackDelay (0000013922490318) callback=EF28BF40 1969 | 1970 | GetOutOfRangeMultiplier (00000139224902C0) callback=EF28BFD0 1971 | 1972 | SetOutOfRangeMultiplier (0000013922490268) callback=EF28C070 1973 | 1974 | GetReloadSpeed (0000013922490210) callback=EF28C230 1975 | 1976 | SetReloadSpeed (00000139224901B8) callback=EF28C2D0 1977 | 1978 | GetReach (0000013922490160) callback=EF28C360 1979 | 1980 | SetReach (0000013922490108) callback=EF28C400 1981 | 1982 | GetMinRange (00000139224900B0) callback=EF28C700 1983 | 1984 | SetMinRange (0000013922490058) callback=EF28C7A0 1985 | 1986 | GetMaxRange (0000013922490000) callback=EF28C830 1987 | 1988 | SetMaxRange (0000013922495F48) callback=EF28C8D0 1989 | 1990 | GetSpeed (0000013922495EF0) callback=EF28C490 1991 | 1992 | SetSpeed (0000013922495E98) callback=EF28C530 1993 | 1994 | GetStagger (0000013922495E40) callback=EF28C5C0 1995 | 1996 | SetStagger (0000013922495DE8) callback=EF28C660 1997 | 1998 | GetSkill (0000013922495D38) callback=EF28C960 1999 | 2000 | SetSkill (0000013922495CE0) callback=EF28C9F0 2001 | 2002 | GetResist (0000013922495C88) callback=EF28CA80 2003 | 2004 | SetResist (0000013922495C30) callback=EF28CB10 2005 | 2006 | GetCritMultiplier (0000013922495BD8) callback=EF28BC40 2007 | 2008 | SetCritMultiplier (0000013922495B80) callback=EF28BCE0 2009 | 2010 | GetCritChargeBonus (0000013922495B28) callback=EF28BD70 2011 | 2012 | SetCritChargeBonus (0000013922495AD0) callback=EF28BE10 2013 | 2014 | GetProjectileOverride (00000139224959C8) callback=EF28CBA0 2015 | 2016 | SetProjectileOverride (0000013922495970) callback=EF28CC40 2017 | 2018 | GetNumProjectiles (0000013922495918) callback=EF28CCE0 2019 | 2020 | SetNumProjectiles (0000013922495810) callback=EF28CD70 2021 | 2022 | GetSightedTransition (0000013922495760) callback=EF28CE10 2023 | 2024 | SetSightedTransition (00000139224956B0) callback=EF28CEB0 2025 | 2026 | GetFlag (00000139224955A8) callback=EF28CF50 2027 | 2028 | SetFlag (00000139224954F8) callback=EF28D000 2029 | 2030 | GetArmorHealth (00000139224953F0) callback=EF28D0B0 2031 | 2032 | SetArmorHealth (0000013922495340) callback=EF28D140 2033 | 2034 | GetArmorRating (00000139224952E8) callback=EF28D1D0 2035 | 2036 | SetArmorRating (0000013922495290) callback=EF28D260 2037 | 2038 | GetWeight (0000013922495238) callback=EF28D2F0 2039 | 2040 | SetWeight (00000139224951E0) callback=EF28D3D0 2041 | 2042 | GetGoldValue (0000013922495188) callback=EF28D4B0 2043 | 2044 | SetGoldValue (0000013922495130) callback=EF28D590 2045 | 2046 | GetKeywords (00000139224950D8) callback=EF28D670 2047 | 2048 | SetKeywords (0000013922495080) callback=EF28D7E0 2049 | 2050 | GetWaterType (0000013922495028) callback=EF27D7D0 2051 | 2052 | IsPlayable (0000013922494FD0) callback=EF29C9D0 2053 | 2054 | IsHidden (0000013922494F78) callback=EF29C9D0 2055 | 2056 | GetLevel (0000013922494F20) callback=EF29C9E0 2057 | 2058 | GetNumRanks (0000013922494E70) callback=EF29C9F0 2059 | 2060 | GetNextPerk (0000013922494DC0) callback=EF29CA00 2061 | 2062 | GetSWFPath (0000013922494D68) callback=EF29CA10 2063 | 2064 | IsEligible (0000013922494D10) callback=EF29CA80 2065 | 2066 | GetLocation (0000013922494C08) callback=EF282640 2067 | 2068 | SetLocation (0000013922494BB0) callback=EF282650 2069 | 2070 | GetRank (0000013922494B58) callback=EF282660 2071 | 2072 | SetRank (0000013922494B00) callback=EF282670 2073 | 2074 | GetMinLevel (0000013922494AA8) callback=EF282680 2075 | 2076 | SetMinLevel (0000013922494A50) callback=EF282690 2077 | 2078 | GetMaxLevel (00000139224949F8) callback=EF2826A0 2079 | 2080 | SetMaxLevel (00000139224949A0) callback=EF2826B0 2081 | 2082 | IsNeverResetable (0000013922494948) callback=EF2826C0 2083 | 2084 | SetNeverResetable (00000139224948F0) callback=EF2826D0 2085 | 2086 | IsWorkshop (0000013922494898) callback=EF2826F0 2087 | 2088 | SetWorkshop (0000013922494840) callback=EF282710 2089 | 2090 | GetParent (00000139224947E8) callback=EF292D20 2091 | 2092 | SetParent (0000013922494790) callback=EF292D30 2093 | 2094 | GetEncounterZone (0000013922494738) callback=EF292D40 2095 | 2096 | SetEncounterZone (00000139224946E0) callback=EF292D60 2097 | 2098 |