Documentation
Using Zycord, building it, and fixing the things that usually go wrong
The launcher has ten sections. This page covers each one, then the build, the catalog generator, the self test and the common failures.
Using the launcher
Home
Running sessions, library count, catalog count and the size of the prepared files, followed by recently started games and four quick actions. The Start a session button opens Games.
Games
Search matches any part of a game name or one of its aliases, ignoring case. The theme menu lists every theme in the catalog with its count. The filter chips narrow results to all games, a single executable, multiple executables, or games with a marked launcher process. Sort offers name A to Z, name Z to A, or most executables first.
Selecting a game shows its application id and every executable Discord watches for it. Where more than one is listed, choose the one that matches how you would normally launch the game. Entries marked as a launcher are separate processes some games run alongside the main one.
Library and Favourites
Saving a game records the game and the executable you chose, and it survives restarts. Favourites are a separate starred list with their own count in the rail. Neither copies the game; both are shortcuts to a session.
Sessions and History
Every running session is listed with its executable, elapsed time and any auto stop remaining. A session can be extended by 15 minutes. Stop ends one session; Stop all ends every session, with a confirmation step if you enabled it. History keeps the last 250 sessions with start, stop, duration and reason.
Settings
| Show the session window | A small window with a timer while a game runs. Turn it off and the stub runs with no window at all. |
|---|---|
| Confirm before starting | Ask first, so a stray click cannot start a game. |
| Confirm before stopping | Ask before a session is ended early. |
| Auto stop | End every session after this long, from 0 to 240 minutes in steps of 15. Zero means off. |
| Minimise to the tray | Closing the window keeps Zycord and its sessions running. Turn it off and closing the window stops every session. |
| Start minimised | Open straight into the tray. |
| Keep on top | Leave the window above other windows. |
| Reduce motion | Turn off the background animation in the launcher. |
| Theme | Glass, the default graphite finish, or Light. |
| Storage | Shows game file and log size, with buttons to open the data folder or clear game files. |
| Data | Clear history and recents, clear the library and favourites, or reset settings. Each is separate. |
Logs
Shows the tail of today's log. Each day gets its own file in
%LOCALAPPDATA%\Zycord\logs, and a file rolls
over at 4 MB. The log records session starts and stops with process ids,
refused operations and errors. It never records anything about your Discord
account. You can refresh, copy, export or clear it.
About and Help
About shows the version, build facts and buttons for the data folder, the website and the repository. Help is a short guide to starting a session and the answers to the questions that come up most.
Building from source
The build needs Windows, the .NET Framework 4 compiler that ships with it, and Python 3 for the build script. No Visual Studio, no .NET SDK, no MSBuild and no NuGet restore.
git clone https://github.com/iZynu/zycord.git cd zycord python build.py
The script compiles the stub and the launcher, copies the interface and the
WebView2 assemblies into dist/, then runs the
self test. A passing build ends with RESULT: PASS
and exits with code 0.
Build options
python build.py build, test and pack the release python build.py --no-test skip the self test python build.py --no-zip leave dist/ unpacked python build.py --clean remove dist/ first
The self test
Zycord.exe --headless boots the real interface
in a hidden window, waits for it to report ready, then exercises the
backend directly. It checks path validation against hostile inputs, settings
round trips, and a full session start and stop.
The report is written to
%LOCALAPPDATA%\Zycord\logs\selftest.txt and
printed to the console.
Rebuilding the catalog
The catalog is generated from Discord's public detectable list by
scripts/build_catalog.py. It keeps only entries
a Windows launcher can use, rejects entries that could escape a folder, and
writes a compressed catalog to app/assets.
python scripts/build_catalog.py python scripts/build_catalog.py saved.json python scripts/build_catalog.py --out other.json.gz
Regenerating the brand assets
The mark, the favicon and every icon size come from one script, so they cannot drift apart. It needs Pillow.
python brand/make_icon.py
Troubleshooting
The window is blank or the launcher closes immediately
This almost always means the WebView2 Runtime is missing or damaged. Install the Evergreen Runtime from Microsoft, then run Zycord again. The launcher writes the reason to today's log before it closes.
Discord does not show the game as running
- Confirm Discord's desktop application is running on the same computer.
- Try a different executable from the list for that game.
- Restart Discord after starting the session. Detection is not instant.
- Some games are detected by launcher process rather than the main one. Try the entry marked as a launcher.
- For a custom game, check that the executable name is one Discord lists. The custom dialog checks it as you type, and a name it marks as not detected cannot appear as activity.
A session will not stop
Stop it from the Sessions tab, then from the tray menu. If the process has already exited, Zycord removes it from the list on the next refresh. A session whose file was moved or deleted cannot be verified, so Zycord deliberately refuses to terminate a process it cannot confirm.
Clear refuses to run
At least one session is still running. Stop it first. This is deliberate: clearing would delete the file a running process is using.
Where do I report a problem
Open an issue at github.com/iZynu/zycord/issues. Include the log from the Logs tab; it is the fastest way to see what happened.