Jump to content

[WIPz] Fallout 4 Script Extender (F4SE)


behippo

Recommended Posts

 

 

Does the current F4SE allow version checks through scripting? For instance, if I build F4SE.psc the same way SKSE's is setup:

 

Scriptname F4SE Hidden

int Function GetVersion() global native

int Function GetVersionMinor() global native

int Function GetVersionBeta() global native

int Function GetVersionRelease() global native

int Function GetScriptVersionRelease() global
    return 48
endFunction

int Function GetPluginVersion(string name) global native
Would I be able to check the version via script?

 

 

No, we haven't implemented any of the scripting functionality yet. We've put in place the hooks into Papyrus, so in theory it could be done assuming you could compile the pex file. I don't think we were planning on doing so until the GECK became available. But plans can change. Let me chat with the team and see what they think.

 

What are you doing that needs this functionality so early? You've got me curious.

 

 

Nothing yet. I was mainly looking into what I could do with plugins and maybe make the options of my mod that use F4SE plugins optional. I'm not being impatient, I know you guys have lives too. I was just asking if the F4SE checks were passed over from skyrim, or removed and will be added later when we know exactly what was changed since skyrim.

Link to comment
Share on other sites

  • Replies 717
  • Created
  • Last Reply

Top Posters In This Topic

 

 

What are you doing that needs this functionality so early? You've got me curious.

 

 

Nothing yet. I was mainly looking into what I could do with plugins and maybe make the options of my mod that use F4SE plugins optional. I'm not being impatient, I know you guys have lives too. I was just asking if the F4SE checks were passed over from skyrim, or removed and will be added later when we know exactly what was changed since skyrim.

 

 

None of the scripting functionality has been moved over yet from SKSE to F4SE. Most of that functionality requires the decoding of the internal classes, which is work in progress.

 

We also don't know for sure yet what functionality has been provided natively with the new Papyrus. We have discovered that the new scripting has introduced some ScriptObject::Get/SetProperty calls which seem to expose a lot of information that required the a script extender in the past. So extending class functionality (for things like Weapons and Armor which we know implement these functions) might be better done as extensions to Get/SetProperty than as new individual functions.

 

As a side note, that type of interface is somewhat of a throwback for us. Way back in the earliest versions of OBSE I implemented commands in a similar way: a single command to fetch information and a parameter to specify which info to get. It was a little confusing to modders and it seemed much easier to just break out the functions into individual accessors which we would implement internally on our classes. Now the main access point seems to be through these more global GetProperty/SetProperty functions on the script object. However, I also haven't looked at the implementation in the class scripts themselves. It could be a lot of papyrus access functions that turn around and call a single native GetProperty function with a specified enumerator. That in fact would allow lots of flexibility for Bethesda to expose new information while still keeping a nice interface for modders.

 

So perhaps I am expecting to see that. Guess I need to look at the decompiled scripts and see what is there. I simply haven't looked into the scripting side much at all yet - without the GECK or a Papyrus compiler there was less of a reason to dive in on that side of the work.

Link to comment
Share on other sites

Ever since the first version, f4se crashes before the game actually launches and I get this error message in the f4se_loader log:

 

WARNING: something has started the runtime outside of f4se_loader's control.
F4SE will probably not function correctly.
Try running f4se_loader as an administrator, or check for conflicts with a virus scanner.
I run the .exe as administrator and have the whole Fallout 4 folder excluded from my antivirus. I have also tried turning off the antivirus completely. What could be causing this?
Edited by ka26
Link to comment
Share on other sites

 

Ever since the first version, f4se crashes before the game actually launches and I get this error message in the f4se_loader log:

 

WARNING: something has started the runtime outside of f4se_loader's control.
F4SE will probably not function correctly.
Try running f4se_loader as an administrator, or check for conflicts with a virus scanner.
I run the .exe as administrator and have the whole Fallout 4 folder excluded from my antivirus. I have also tried turning off the antivirus completely. What could be causing this?

 

can you post full contents of f4se_loader.log?

Link to comment
Share on other sites

Thanks for this. The key bindings drove me crazy.

 

Here's my CustomControlMap.txt ESDF bindings:

Forward	0x45	0xff	0xff	1	1	0	0x1
Back	0x44	0xff	0xff	1	1	0	0x1
StrafeLeft	0x53	0xff	0xff	1	1	0	0x1
StrafeRight	0x46	0xff	0xff	1	1	0	0x1
Move	0xff	0xff	0x000b	0	0	0	0x1
Look	0xff	0xa00	0x000c	0	0	0	0x2
PrimaryAttack	0xff	0x0	0x000a	1	1	1	0x40
SecondaryAttack	0xff	0x1	0x0009	1	1	1	0x40
Melee	0x57	0xff	0x0200	1	1	1	0x40
Activate	0x52	0xff	0x1000	1	1	1	0x04
ReadyWeapon	0x54	0xff	0x4000	1	1	1	0x40
Pipboy	0x09	0xff	0x2000	1	1	1	0x108
TogglePOV	0x56	0x2	0x0020	1	1	1	0x20
ZoomIn	0xff	0x800	0xff	0	0	0	0x220
ZoomOut	0xff	0x900	0xff	0	0	0	0x220
Jump	0x20	0xff	0x8000	1	1	1	0x401
Sprint	0x41	0xff	0x0040	1	1	1	0x1
VATS	0x51	0xff	0x0100	1	1	1	0x40
Sneak	0x5A	0xff	0x0080	1	1	1	0x81
Run	0xA0	0xff	0xff	1	1	0	0x1
ToggleAlwaysRun	0x14	0xff	0xff	1	1	0	0x1
AutoMove	0x58	0xff	0xff	1	1	0	0x1
Quickkeys	0x47	0xff	0xff	1	0	0	0x8
QuickkeyUp	0xff	0xff	0x0001	0	0	0	0x8
QuickkeyDown	0xff	0xff	0x0002	0	0	0	0x8
QuickkeyLeft	0xff	0xff	0x0004	0	0	0	0x8
QuickkeyRight	0xff	0xff	0x0008	0	0	0	0x8
Quickkey1	0x31	0xff	0xff	0	0	0	0x8
Quickkey2	0x32	0xff	0xff	0	0	0	0x8
Quickkey3	0x33	0xff	0xff	0	0	0	0x8
Quickkey4	0x34	0xff	0xff	0	0	0	0x8
Quickkey5	0x35	0xff	0xff	0	0	0	0x8
Quickkey6	0x36	0xff	0xff	0	0	0	0x8
Quickkey7	0x37	0xff	0xff	0	0	0	0x8
Quickkey8	0x38	0xff	0xff	0	0	0	0x8
Quickkey9	0x39	0xff	0xff	0	0	0	0x8
Quickkey10	0x30	0xff	0xff	0	0	0	0x8
Quickkey11	0xbd	0xff	0xff	0	0	0	0x8
Quickkey12	0xbb	0xff	0xff	0	0	0	0x8
Quicksave	0x74	0xff	0xff	1	0	0	
Quickload	0x78	0xff	0xff	1	0	0	
Pause	0x1b	0xff	0x0010	1	1	1	0x8
Screenshot	0x2c	0xff	0xff	0	0	0	0x10
Console	0xc0	0xff	0xff	0	0	0	0x10
ConsoleToggles	0x2d	0xff	0xff	0	0	0	0x10
CameraPath	0x7b	0xff	0xff	0	0	0	
QuickStats	0x4b	0xff	0xff	1	1	0	0x108
QuickInventory	0x49	0xff	0xff	1	1	0	0x108
QuickData	0x4a	0xff	0xff	1	1	0	0x108
QuickMap	0x4d	0xff	0xff	1	1	0	0x108
QuickRadio	0x4f	0xff	0xff	1	1	0	0x108
							
Accept	0x0D	0xff	0x1000	0	0	0	0x8
Cancel	0x09	0xff	0x2000	0	0	0	0x8
Up	0x26	0xff	0x0001	0	0	0	0x8
Down	0x28	0xff	0x0002	0	0	0	0x8
Left	0x25	0xff	0x0004	0	0	0	0x8
Right	0x27	0xff	0x0008	0	0	0	0x8
							
LeftStick	0xff	0xff	0x000b	0	0	0	0x8
RightStick	0xff	0xff	0x000c	0	0	0	0x8
							
LTrigger	0xff	0xff	0x0009	0	0	0	0x8
RTrigger	0xff	0xff	0x000a	0	0	0	0x8
XButton	0x54	0xff	0x4000	0	0	0	0x8
YButton	0x59	0xff	0x8000	0	0	0	0x8
LShoulder	0xA0	0xff	0x0100	0	0	0	0x8
RShoulder	0x51	0xff	0x0200	0	0	0	0x8
Select	0x56	0x1	0x0020	0	0	0	0x8
L3	0xA2	0xff	0x0040	0	0	0	0x8
R3	0x58	0xff	0x0080	0	0	0	0x8
							
Cursor	0xff	0xa00	0x000c	0	0	0	0x10
Click	0xff	0x0	0x1000	0	0	0	0x10
							
Cursor	0xff	0xa00	0x000b	0	0	0	0x10
Click	0xff	0x0	0x1000	0	0	0	0x10
							
PickPrevious	0xff	0x800	0x0002	0	0	0	0x10
PickNext	0xff	0x900	0x0001	0	0	0	0x10
Up	0x26	0xff	0xff	0	0	0	0x10
Down	0x28	0xff	0xff	0	0	0	0x10
PageUp	0x21	0xff	0xff	0	0	0	0x10
PageDown	0x22	0xff	0xff	0	0	0	0x10
NextFocus	0x09	0xff	0x0200	0	0	0	0x10
PreviousFocus	0xff	0xff	0x0100	0	0	0	0x10
							
PrevPage	0x26	0xff	0xff	0	0	0	0x10
NextPage	0x28	0xff	0xff	0	0	0	0x10
PrevSubPage	0x21	0xff	0xff	0	0	0	0x10
NextSubPage	0x22	0xff	0xff	0	0	0	0x10
							
PrevPage	0xff	0x0,0x900	0x0009,0x0100	0	0	0	0x8
NextPage	0xff	0x1,0x800	0x000a,0x0200	0	0	0	0x8
							
Console	0xc0	0xff	0xff	0	0	0	0x10
NextFocus	0x09	0xff	0x0200	0	0	0	0x10
PreviousFocus	0xff	0xff	0x0100	0	0	0	0x10
Up	0x26	0xff	0x0001	0	0	0	0x10
Down	0x28	0xff	0x0002	0	0	0	0x10
Left	0x25	0xff	0x0004	0	0	0	0x10
Right	0x27	0xff	0x0008	0	0	0	0x10
PageUp	0x21	0xff	0xff	0	0	0	0x10
PageDown	0x22	0xff	0xff	0	0	0	0x10
ToggleMinimize	0x74	0xff	0x0020	0	0	0	0x10
ToggleMove	0x73	0xff	0x0080	0	0	0	0x10
Close	0x75	0xff	0xff	0	0	0	0x10
F1	0x70	0xff	0xff	0	0	0	0x10
F2	0x71	0xff	0xff	0	0	0	0x10
F3	0x72	0xff	0xff	0	0	0	0x10
F7	0x76	0xff	0xff	0	0	0	0x10
F8	0x77	0xff	0xff	0	0	0	0x10
F9	0x78	0xff	0xff	0	0	0	0x10
F10	0x79	0xff	0xff	0	0	0	0x10
F11	0x7a	0xff	0xff	0	0	0	0x10
F12	0x7b	0xff	0xff	0	0	0	0x10
LTrigger	0xff	0xff	0x0009	0	0	0	0x10
RTrigger	0xff	0xff	0x000a	0	0	0	0x10
Backspace	0x08	0xff	0xff	0	0	0	0x10
Enter	0x0D	0xff	0xff	0	0	0	0x10
B	0xff	0xff	0x2000	0	0	0	0x10
Y	0xff	0xff	0x8000	0	0	0	0x10
X	0xff	0xff	0x4000	0	0	0	0x10
							
CameraZUp	0xff	0x800	0x000a	0	0	0	
CameraZDown	0xff	0x900	0x0009	0	0	0	
WorldZUp	0xff	0x0	0x0200	0	0	0	
WorldZDown	0xff	0x1	0x0100	0	0	0	
LockToZPlane	0xff	0xff	0x4000	0	0	0	
							
Look	0xff	0xff	0x000c	0	0	0	0x8
ZoomIn	0xff	0x800	0x000a	0	0	0	0x8
ZoomOut	0xff	0x900	0x0009	0	0	0	0x8
Move	0xff	0xa	0x000b	0	0	0	0x8
							
RotatePick	0xff	0xa00	0x000b	0	0	0	0x8
RotateLock	0x45,0x44,0x53,0x46	0xff	0x000c	0	0	0	0x8
DebugMode	0xbf	0xff	0x4000	0	0	0	0x8
Cancel	0x1b	0xff	0x2000	0	0	0	0x8
							
Pick	0x51	0xff	0x000a	0	0	0	0x8
Accept	0x52	0xff	0x1000	0	0	0	0x8
Cancel	0x09,0x4E	0x1	0x2000,0x0100	0	0	0	0x8
ChangePart	0xff	0xff	0x000b	0	0	0	0x8
NextTarget	0x46	0xff	0xff	0	0	0	0x8
PrevTarget	0x53	0xff	0xff	0	0	0	0x8
NextPart	0x45	0x800	0xff	0	0	0	0x8
PrevPart	0x44	0x900	0xff	0	0	0	0x8
ZoomIn	0x56	0x2	0x0009	0	0	0	0x8
							
Cancel	0x09,0x4E	0x1	0x2000,0x0100	0	0	0	0x8
ApplyCritical	0x20	0xff	0x4000	0	0	0	0x8
							
MultiActivateA	0x28,0x34	0xff	0x1000	0	0	0	0x8
MultiActivateB	0x27,0x33	0xff	0x2000	0	0	0	0x8
MultiActivateX	0x25,0x32	0xff	0x4000	0	0	0	0x8
MultiActivateY	0x26,0x31	0xff	0x8000	0	0	0	0x8
							
Accept	0x52	0xff	0x1000	0	0	0	0x8
Cancel	0x09	0xff	0x2000	0	0	0	0x8
Up	0x26	0xff	0x0001	0	0	0	0x8
Down	0x28	0xff	0x0002	0	0	0	0x8
Left	0x25	0xff	0x0004	0	0	0	0x8
Right	0x27	0xff	0x0008	0	0	0	0x8
LTrigger	0x47	0x0	0x0009	0	0	0	0x8
RTrigger	0x48	0x1	0x000a	0	0	0	0x8
XButton	0x54	0xff	0x4000	0	0	0	0x8
LShoulder	0xA2	0xff	0x0100	0	0	0	0x8
RShoulder	0x51	0xff	0x0200	0	0	0	0x8
CloseMenu	0x1b	0xff	0x0020	0	0	0	0x8
AlternateControlsKey	0x41	0xff	0x0200	0	0	0	0x8
							
Steady	0x57	0xff	0x0040	0	0	0	0x41
							
StartWait	0x59	0xff	0x8000	0	0	0	0x8
							
Done	0x0D	0xff	0x0010	0	0	0	0x8
Cancel	0x1b	0xff	0xffff	0	0	0	0x8
KeyLeft	0x53,0x25	0xff	0xffff	0	0	0	0x8
KeyRight	0x46,0x27	0xff	0xffff	0	0	0	0x8
KeyDown	0x44,0x28	0xff	0xffff	0	0	0	0x8
KeyUp	0x45,0x26	0xff	0xffff	0	0	0	0x8
Space	0x20	0xff	0xffff	0	0	0	0x8
B	0x4E	0xff	0xffff	0	0	0	0x8
C	0xA0	0xff	0xffff	0	0	0	0x8
Accept	0x52	0xff	0xffff	0	0	0	0x8
F	0x47	0xff	0xffff	0	0	0	0x8
R	0x54	0xff	0xffff	0	0	0	0x8
T	0x59	0xff	0xffff	0	0	0	0x8
X	0x58	0xff	0xffff	0	0	0	0x8
Y	0x55	0xff	0xffff	0	0	0	0x8
							
YButton	0x20	0xff	0x8000	0	0	0	0x8
							
Up	0x45	0xff	0x0001	0	0	0	0x8
Down	0x44	0xff	0x0002	0	0	0	0x8
Left	0x53	0xff	0x0004	0	0	0	0x8
Right	0x46	0xff	0x0008	0	0	0	0x8
							
DeleteSave	0x58	0xff	0x4000	0	0	0	0x8
ResetToDefault	0x59	0xff	0x8000	0	0	0	0x8
Accept	0x0D	0xff	0xff	0	0	0	0x10
Cancel	0x1b	0xff	0xff	0	0	0	0x10
							
ZoomOut	0xff	0x900	0x0009	0	0	0	0x8
ZoomIn	0xff	0x800	0x000a	0	0	0	0x8
							
PrevPerk	0x5A,0xa3	0xff	0x0100	0	0	0	0x8
NextPerk	0x57,0xa5	0xff	0x0200	0	0	0	0x8
							
DeleteSave	0x58	0xff	0x4000	0	0	0	0x8
Start	0x1b	0xff	0x0010	0	0	0	0x8
							
QuickContainerUp	0xff	0x800	0x0001	0	0	0	0xC
QuickContainerDown	0xff	0x900	0x0002	0	0	0	0xC
QCTakeItem	!Activate	!Activate	!Activate	0	0	0	0xC
QCOpenTransferMenu	!ReadyWeapon	!ReadyWeapon	!ReadyWeapon	0	0	0	0xC
							
SpecialActivate	!Activate	!Activate	!Activate	0	0	0	0xC
							
SecondaryActivate	!ReadyWeapon	!ReadyWeapon	!ReadyWeapon	0	0	0	0xC
							
QuickContainerPerk	!Jump	!Jump	!Jump	0	0	0	0xC
							
Land	0x52	0xff	0x1000	0	0	0	0x04
BailOut	0x20	0xff	0x8000	0	0	0	0x401
							
Start	0x1b	0xff	0x0010	0	0	0	0x8

It mostly shifts everything one key to the right with a few exceptions. Some of the menus reflect the new map while others don't. Be sure to reset to default after saving to Data\F4SE\CustomControlMap.txt for the keys to take effect in game.

 

Quick review:

ESDF for movement; W for bash\nade; Q for vats; V for construction\pov; Z for crouch; A for sprint; Caps lock for run\walk toggle; Shift for run\walk on key hold toggle; X for auto walk; E for activate\pick up; T for reload\holster on hold; Ctrl for sort in inventory/item exchange/shop; G for favorites and so on... Refer to the file if uncertain - though, again, it's mostly all just shifted one place to the right - or make your own.

 

Some menus seem to reflect the correct keys in the hints but others (like the item exchange\inventory) are still visually misleading.

 

The advantage over the in-game normal binding is a functional - albit, misleading interface - settlement construction mode. That is, you can walk normally in it now.

The advantage over a AutoHotKey script is that some menus correctly reflect the binding.

The disadvantage over a AutoHotKey is that it's harder to edit and debug.

 

Quick hint: Use LibreOffice's Calc to import the map as a English unicode, tab-delimited .csv and tag the checkbox "Merge delimiters" to make editing more convenient. When you save it as a .csv the game will handle the output just fine as long as you retain the .txt extension.

 

Thanks again.

Edited by hdhemgey
Link to comment
Share on other sites

 

can you post full contents of f4se_loader.log?

 

 

 

f4se loader 00010030 01D1365E809BEB35 6.1 (7601)
config path = E:\Program Files (x86)\Bethesda Softworks\Fallout 4\Data\F4SE\f4se.ini
procPath = E:\Program Files (x86)\Bethesda Softworks\Fallout 4\\Fallout4.exe
launching: Fallout4.exe (E:\Program Files (x86)\Bethesda Softworks\Fallout 4\\Fallout4.exe)
dwSignature = FEEF04BD
dwStrucVersion = 00010000
dwFileVersionMS = 00010002
dwFileVersionLS = 00250000
dwProductVersionMS = 00010002
dwProductVersionLS = 00250000
dwFileFlagsMask = 00000017
dwFileFlags = 00000000
dwFileOS = 00000004
dwFileType = 00000001
dwFileSubtype = 00000000
dwFileDateMS = 00000000
dwFileDateLS = 00000000
version = 0001000200250000
product name = Fallout 4
normal exe
dll = E:\Program Files (x86)\Bethesda Softworks\Fallout 4\\f4se_1_2_37.dll
main thread id = 15648
hookBase = 0000000007FE0000
loadLibraryAAddr = 0000000076FE6590
hook thread complete
launching
WARNING: something has started the runtime outside of f4se_loader's control.
F4SE will probably not function correctly.
Try running f4se_loader as an administrator, or check for conflicts with a virus scanner.

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.

×
×
  • Create New...