Repository navigation
Saving Logs
Save your SF4 Ember Netplay logs immediately after a problem, before launching another session. For an online match issue, both players should follow these steps on their own PCs.
-
Note the approximate time the problem happened and what you were doing, such as joining a table, finishing a match or starting a rematch.
-
If Ember is still responsive, use Help & About → Export diagnostics before leaving the session. Wait for the saved-file message. If the game crashed or the menu is unavailable, continue with the logs below.
-
Close the game and launcher. If
Launcher.exeorSSFIV.exeis still listed in Task Manager, end it. Avoid starting another session until you have saved this one. -
Press Windows + R, paste the following path, and press Enter:
%APPDATA%\sf4eOn Linux (Proton or Wine), the folder is inside the game's prefix:
steamapps/compatdata/45760/pfx/drive_c/users/steamuser/AppData/Roaming/sf4e. -
Right-click the logs folder and choose Compress to ZIP file. On Windows 10, or under Show more options, choose Send to → Compressed (zipped) folder.
-
Give the ZIP a descriptive name, such as
P1-rematch-stuck-2026-09-14.zip. The other player can useP2-rematch-stuck-2026-09-14.zip. -
Copy the ZIP somewhere you can find it, such as your Desktop, and keep it until the report is resolved.
Include the entire logs folder. Depending on your build and session, it can contain:
| File | What it helps investigate |
|---|---|
session-*.log |
Session events from individual processes |
sf4e.log and numbered copies |
Game-side logging and previous log files, including Selection art ... unavailable lines when character pictures fail to load |
launcher.log and numbered copies |
Launcher startup and launch failures, and picture failures on the launcher's recovery screen |
sidecar_bootstrap.log |
Sidecar startup and loading |
Other .log files |
Additional startup or diagnostic information |
Some files may be absent or older than your latest session. Sending only sf4e.log can miss the relevant events. Keep the existing filenames inside the ZIP, and do not delete older logs before collecting them.
Open Help & About > Report a problem, describe what happened, and review
the preview before choosing Send. After a crash, the launcher's message
offers Send this report, which opens the same preview for that crash.
The preview lists every part and its size, the version/build/Windows and crash
facts, and the redacted log text. Reports include up to the last 192 KiB of
each available sf4e.log, launcher.log, sf4e-crash.log, and sf4-net.log.
Invitations, tokens, network addresses, emails, your Windows user name and
profile folder (including its short 8.3 form), your PC name and your player
name are redacted; review the text for anything else you want to keep private.
Problem reports require a comment, limited to 2000 characters. The comment is
sent as written, and a report with a comment always waits for Send. Keep
the copyable report ID after a successful submission.
A crash report can include a Small dump. It is off for every report until you turn it on in that report's preview. It contains unfiltered thread stack bytes and module paths, which can expose private memory, complete credentials or invitations, usernames, directory paths and other identifiers. Log redaction does not sanitize these bytes. The dump contents are not shown in the text preview; the final Send confirmation repeats this warning whenever the dump is included. Full local dumps are never uploaded. Small dumps over 4 MiB are not offered. Raw dumps are kept on Ember's server for up to 30 days; processed reports and pending delivery have separate retention.
Sending crash reports without asking is opt-in. Settings > Problem reports > Send problem reports defaults to off. Choosing Always send in the launcher's crash message, after its confirmation, turns it on and sends that crash's report. With it on, the launcher sends each crash's report without asking: logs only, never a dump, and at most 3 reports in 24 hours. Every report sent counts toward that limit, including ones sent from a preview, and while the record of sent reports cannot be read nothing is sent without asking. Turn it off on the same screen. Settings > Problem reports > Sent reports lists each report this PC sent, how it went, its report ID, and whether a dump went with it.
If reporting is unavailable or rate limited, the preview shows the error and when to try again. You can still save logs manually using this guide.
If Export diagnostics succeeded, press Windows + R and open:
%APPDATA%\sf4e\diagnostics
Copy ember-diagnostics.txt alongside your log ZIP and include both in your report. Rename the copy with the same player and incident label so it is easy to match to the ZIP. Each export replaces the file at its original location, so save a copy before exporting again.
The export contains Ember's version and connection-state information. It omits invitations, credentials, player names, raw log text and settings backups. It is an additional report; it does not include the logs folder.
When rollback diagnostics are enabled (see below), the export includes fifteen fixed CPU-work timing groups: complete outer call, outer tick, room runtime, session-client step, session-server step, GGPO idle, rollback callback, save state, load state, pacing wait, diagnostic enqueue, trace enqueue, free state, effect restore and VFX restore. It also counts rollback callbacks, prediction stalls and prediction-skipped frames. Their sample counts, mean and maximum durations, and over-25-ms counts describe where Ember spent CPU time. The export also reports dropped asynchronous game-log/lifecycle records and the latest lifecycle writer duration. These are CPU and queue indicators, not displayed-frame measurements; use the repository's PresentMon capture runner for presentation pacing.
To turn on rollback diagnostics, open Command Prompt in the Ember folder, run set SF4E_ROLLBACK_DIAGNOSTICS=1, then run Launcher.exe from the same window. During a match, sf4e.log then gets a RollbackDiag summary about every 10 seconds and at match end. It includes sound_sync and limiter_wait; a limiter_wait near zero means the PC cannot keep 60 fps.
Recovery checkpoint builds counts checkpoint serialization attempts during the lifetime of the current hosted room. A value of zero means that the available room counter observed no builds; Unavailable means there was no hosted-room counter to read, so it must not be interpreted as zero. Starting a different hosted room starts a different counter lifetime.
For a heap-corruption test, close Ember and the game, then open
%APPDATA%\sf4e\settings.json in a text editor. Add or merge this object
inside the existing overlay section, preserving the other preferences:
"diagnostics": { "heapCheckInterval": 1 }Restart Ember. sf4e.log should show HeapCheck: validating every process heap with (settings.json). The interval is the number of save-state
operations between checks; 1 checks every save, load and release. Match
boundaries are also checked. A check can take milliseconds and affect match
performance, so use this only for reproducing a problem. Set the interval to
0 or remove the key and restart to disable it. The existing
SF4E_HEAP_CHECK=<n> environment variable still works and takes precedence,
including SF4E_HEAP_CHECK=0 to disable checks. A failed checkpoint reports
the operation and frame in sf4e.log; collect the whole logs folder.
Include:
- The log ZIP from each affected PC, labelled so the players can be distinguished.
- Each player's
ember-diagnostics.txt, if available. - Which package you use: the name of the ZIP you extracted, such as
sf4-ember-netplay-v0.9.8-rc3, orBUILD_INFO.txtfrom the folder containingLauncher.exe. Test builds can still report the previous release's version number, so the ZIP name matters. - The approximate time and time zone of the problem on each PC.
- What you expected, what actually happened, and the steps that led to it.
- Whether one or both players saw the issue, and whether it repeats.
For example: “At about 8:15 p.m. Eastern, P1 won the first match. P1 stayed on the result screen while P2 returned to the room. This happened twice when trying to rematch.”
Use the repository's Issues page to report the problem, or send the files through the support conversation where they were requested. Raw logs are separate from the redacted export: review them before posting publicly, and keep private invitations and credentials out of your report. Share the log ZIP and diagnostic file rather than the entire %APPDATA%\sf4e folder, which also contains settings.
- The logs folder does not exist: check that you are using the same Windows account that ran Ember. Report that no logs were created and include the launch error and build information if available.
-
The logs look old: sort the folder by Date modified, check the
session-*.logfiles too, and include the whole folder with the incident time. Do not assume an oldsf4e.logdescribes the latest match. - Windows cannot zip a file because it is in use: make sure the game and launcher have closed, then try again.
-
The problem is an update failure: also copy
%TEMP%\sf4-netplay-update.log, if present. Keep.ember-update-backupsin the install folder for recovery. -
An update says recovery is required: start
Launcher.exeagain; it restores an interrupted update before the game starts. If that fails, extract the matching upgrade package outside the installation and runInstall-Upgrade.ps1 -InstallDir <Ember folder> -RecoverOnly. If the install folder contains.ember-update-transaction-v1.json.failed, include it in your report.-CheckOnlyonly reports the pending transaction and never changes installed files. Preserve the transaction and backups if recovery reports damaged evidence.
For fixes to common problems, see Troubleshooting.
Generated from the docs at cf0c5c83c; edit the docs, not this page.
Coming soon, from open pull requests:
- #51 Allow reading and sending chat directly in the room
- #76 Endless lobby music at the main menu, with a setting
- #90 Add a Linux guide for installing Ember by hand under Proton
- #100 Let spectators toggle the lobby with Start
- #102 Make table actions controller accessible and consolidate room settings
- #104 Expire chat notifications after four seconds and retain unread badges
- #105 Add LAN room discovery and direct local connections
- #108 Install Ember on a Steam Deck with a double-click
- #111 Let older copies take new package files, setup upgrade an Ember folder, and switch channel in game
- #116 Keep Ember's menu confirm on A and B for every XInput pad
- #133 Add the Ember ID passphrase and keyboard tips to the Steam Deck guide
- #139 Show the watched game in the room column, with a toggle on the board
Getting started
Playing online
Training
Frame Data
Integrations
Troubleshooting
More guides