Launcher: Difference between revisions
Fix various formatting sins |
Clarify the different debugging methods |
||
(8 intermediate revisions by the same user not shown) | |||
Line 2: | Line 2: | ||
The launcher basically display webpages. | The launcher basically display webpages. | ||
This page only covers the Launcher from the [[Global Region]]. Other regions have their own bespoke launcher, such as in the [[China Region#Launcher|China]] and [[Korea Region#Launcher|Korea]]. | |||
== History == | == History == | ||
Line 24: | Line 26: | ||
[[File:Ffxivlauncher-new.png|600px]] | [[File:Ffxivlauncher-new.png|600px]] | ||
=== 7.21 === | |||
In Patch 7.21, they are now (finally) switching to WebView2. This is currently a soft requirement, it's trivial to skip it by killing the WebView2 installer or through [https://github.com/redstrate/LauncherTweaks other methods]. | |||
== Browser Engines == | == Browser Engines == | ||
Line 34: | Line 40: | ||
== Debugging == | == Debugging == | ||
Run <code>C:\Windows\System32\F12\IEChooser.exe</code> while the launcher is running. | === Internet Explorer === | ||
Run <code>C:\Windows\System32\F12\IEChooser.exe</code> while the launcher is running. | |||
=== WebView2 === | |||
Despite IEChooser supporting Edge, the launcher I guess hides itself(?) But you can still set set <code>WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS="auto-open-devtools-for-tabs"</code> to force DevTools open. | |||
== Native Communication == | == Native Communication == | ||
Line 81: | Line 93: | ||
<pre>{"state":0,"ID":9}</pre> | <pre>{"state":0,"ID":9}</pre> | ||
==== config(cfg) ==== | |||
Sets a <code>FFXIV_BOOT.cfg</code> value. Possible values are: | |||
* theme | |||
* dataCenter | |||
* lang | |||
* dx11enabled | |||
* region | |||
=== Events === | |||
==== fromAppExAgree ==== | |||
If the user did not accept these agreement and tries to login, the event is triggered: | |||
<pre>{"notAgreedExEulas":"1,2,3,4,5"}</pre> | |||
==== fromAppStartVersionCheck ==== | |||
Called when starting to login. | |||
<pre>{"versionChecking":"Checking FINAL FANTASY XIV.","cis_sessid":"{session_id}","maxex":5,"product":1,"characreation":0,"exregskip":0,"ID":1}</pre> | |||
==== fromAppWaitPlay ==== | |||
Called when successfully logged in and the version passes the check? | |||
<pre>{"forceFocus":1,"ID":6}</pre> | |||
== User Agent == | == User Agent == |
Latest revision as of 19:53, 17 June 2025

The launcher basically display webpages.
This page only covers the Launcher from the Global Region. Other regions have their own bespoke launcher, such as in the China and Korea.
History
Since FFXIV has been around for a long time, it's went through several launcher redesigns.
1.x
This is the launcher used for 1.x, before A Realm Reborn. This screensot is recreation by Ioncannon, as no one took a screenshot of the original login page I guess.
2.x
This launcher design was launched with A Realm Reborn and had been in service until Endwalker.
6.x
This is the current iteration of the launcher, and the old launcher can no longer be used and all users must use the new design as of 6.x.
7.21
In Patch 7.21, they are now (finally) switching to WebView2. This is currently a soft requirement, it's trivial to skip it by killing the WebView2 installer or through other methods.
Browser Engines
The launcher supports two browser engines:
- MSHTML (Internet Explorer 11) which is BrowserType 0, 1
- WebView2 (Chrome) which is BrowserType 2
Debugging
Internet Explorer
Run C:\Windows\System32\F12\IEChooser.exe
while the launcher is running.
WebView2
Despite IEChooser supporting Edge, the launcher I guess hides itself(?) But you can still set set WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS="auto-open-devtools-for-tabs"
to force DevTools open.
Native Communication
To communicate with native code, it uses window.chrome.webview.postMessage
. This is shortened to window.external.user
with this function:
window.external.user = function (e) { window.chrome.webview.postMessage(e); }
Functions
systemConfig
Opens the system config program.
requestExit
Exits the launcher.
requestReboot
Despite the name, the launcher doesn't come back from quitting. Maybe used on console?
link
Opens an external URL in your default web browser.
eulaOk
Sets the EulaAgreement
in your FFXIV_BOOT.cfg
to 1.
requestDP
{"id": 1}
requestConfig
{"lang":"en","region":2,"eula":0,"startup":0,"issteam":0,"query":"none","ver":"2025.03.10.0000.0001(11500960)","skip_confirm_expansion_install_dialog":"0","installedExVersions":"","dx11available":"1","dx11enabled":"1","maxex":"-1","characreation":"0","is64bit":"1","product":"-1","browser":"2","ie11available":"1","theme":"0","dataCenter":"0","productization":"-1","product_ex":"0"}
requestDisplaySettings
{"bg":"{\"v\":700,\"d\":[1,0,0,0,0,0]}"}
requestResumeInfo
{"state":0,"ID":9}
config(cfg)
Sets a FFXIV_BOOT.cfg
value. Possible values are:
- theme
- dataCenter
- lang
- dx11enabled
- region
Events
fromAppExAgree
If the user did not accept these agreement and tries to login, the event is triggered:
{"notAgreedExEulas":"1,2,3,4,5"}
fromAppStartVersionCheck
Called when starting to login.
{"versionChecking":"Checking FINAL FANTASY XIV.","cis_sessid":"{session_id}","maxex":5,"product":1,"characreation":0,"exregskip":0,"ID":1}
fromAppWaitPlay
Called when successfully logged in and the version passes the check?
{"forceFocus":1,"ID":6}
User Agent
Example: SQEXAuthor/2.0.0(Windows 7; ja-jp; 5fd2faa332)
Other Possible User Agents
- Windows: "sqex"
- macOS: "macsqex
- PS4: "playstation 4"
- PS5: "playstation 5"
- XBox: "xbox"
Build Paths
c:\\ws\\ver_720_winbuild\\branches\\ver_720\\trunk\\prog\\patch\\Build\\LauncherWin