Difference between revisions of "Category:F4SE"

3,882 bytes added ,  20:49, 5 March 2020
There is now an F4SE for VR
imported>Qazaaq
imported>Qazaaq
(There is now an F4SE for VR)
 
(6 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[Category:Papyrus]]
[[File:F4se_logo.png|left]]
[[File:F4se_logo.png]]
The Fallout 4 Script Extender, or F4SE for short, is a community made modder's resource that expands the scripting capabilities of Fallout 4.
The Fallout 4 Script Extender, or F4SE for short, is a community made modder's resource that expands the scripting capabilities of Fallout 4.
F4SE supports the latest version of Fallout 4 and Fallout 4 VR available on Steam, PC only.
{{ClearFloats}}


For the latest releases and documentation visit the official website http://f4se.silverlock.org/
For the latest releases and documentation visit the official website http://f4se.silverlock.org/


=== Papyrus ===
Adds all new native [[Papyrus]] script objects.
=== Native Plugin API ===
Allows authors to extend Fallout 4 by writing c++ code.
=== Console Commands ===
Running [[GetF4SEVersion]] from the console will print the current version of F4SE.
The currently installed version of F4SE is also shown in the [[Menu|''PauseMenu'']] next to the game version.
=== Logging ===
F4SE log files will be written to <code>...\<Documents>\My Games\Fallout4\F4SE\</code>.
These files contain useful information such as version information, loaded plugins, and debug messages.
Optionally, logging from Scaleform may be enabled by adding <code>bEnableGFXLog=1</code> to the <code>[Interface]</code> section of your F4SE.ini.
Create <code>Fallout 4\Data\F4SE\F4SE.ini</code> if it doesn't exist.
<source lang="text">
[Interface]
bEnableGFXLog=1
</source>
=== Key Mappings ===
Customization of internal key mappings.
Copy CustomControlMap.txt to <code>...\Fallout 4\Data\F4SE\CustomControlMap.txt</code>.
Edit that file to set your bindings. The format is the same as Skyrim, it's a space-separated file.
The first column is the name of the internal keybind. The second column is the keyboard scan code that should activate the bind in hex, or <code>0xFF</code> if unbound.
Use google to find a table of scan codes. The third column is for mice, the fourth for controllers.
The next three columns control whether or not a control should be written to the user's config file.
The final column specifies which input layer the bind is associated with - you will probably not want to change that.
=== Scaleform ===
Scaleform is the middleware between Fallout 4 and [[Adobe Flash]]. This is the technology behind the games [[User Interface]].
==== Translation Injection ====
F4SE adds support for Scaleform translation injection. Create your own translation file by adding a text file that matches your mod name to <code>...\Fallout 4\Data\Interface\Translations</code>.
For example, the mod <code>HelloWorld.esp</code> may add English translations by creating <code>...\Fallout 4\Data\Interface\Translations\HelloWorld_en.txt</code>.
==== Menu Code Object ====
F4SE also provides a Scaleform code interface by installing a code object to the root of any registered menu.
To acquire the F4SE code object in AS3, use <code>(stage.getChildAt(0) as MovieClip).f4se</code> or <code>MovieClip(root).f4se</code>.
There are some cases when the installed F4SE code object on a menu root may be unreachable from your display object class.
With [[:Category:F4SE|F4SE]] v0.6.8 and greater the code object may be received by implementing the <code>onF4SEObjCreated</code> function on your display object class.
This function is called on the menu root document as well as first-level children.


== Console Commands ==
<source lang="actionscript">
* GetF4SEVersion
package Shared.F4SE
{
public interface ICodeObject
{
function onF4SEObjCreated(codeObject:*):void;
}
}
</source>
 
====== Code Object ======
It is a good idea to wrap calls to the F4SE code object in a Try/Catch block.
* <code>AllowTextInput : Function(allow:Boolean):void</code>
* <code>GetMembers : Function():void</code>
* <code>CallFunctionNoWait : Function():void</code>
* <code>SendExternalEvent : Function(eventName:String, *...):void</code>
* <code>GetDirectoryListing : Function(path:String, match:String, recursive:Boolean):Array</code>
* <code>MountImage : Function(menuName:String, mountPath:String, mountName:String):void</code>
* <code>UnmountImage : Function(menuName:String, mountPath:String):void</code>
* <code>plugins : Array</code>
** <code>pluginName1 : [Object]</code>
** <code>pluginName2 : [Object]</code>
* <code>version : [Object]</code>
** <code>releaseIdx : Number</code>
** <code>minor : Number</code>
** <code>major : Number</code>
** <code>beta : Number</code>
 
 
[[Category:Papyrus]]
Anonymous user