Launcher

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
Run C:\Windows\System32\F12\IEChooser.exe
while the launcher is running. Or if you're using the WebView2 backend, set WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS="auto-open-devtools-for-tabs"
.
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