1. Register for a https://steamcommunity.com/dev/apikey[Steam API key] (free) using your Steam account. You will be asked for a unique URL for your app when registering.
2. Since this key is for a personal use application and does not actually call back anywhere, set a generic local identifier here like "127.0.0.1" or some other name that is meaningful to you.
3. Once configured, you can insert this key in the app when launching it for the first time.
This step is optional. Using this key in conjunction with the above allows you to connect to and query servers by ID instead of by IP. See <<Add server by ID>>.
1. Register for an API key at https://www.battlemetrics.com/account/register?after=%2Fdevelopers[BattleMetrics] (free)
2. From the **Personal Access Tokens** area, Select **New Token**
3. Give the token any name in the field at the top
4. Leave all options **unchecked** and scroll to the bottom, select **Create Token**
5. Once configured, you can insert this key in the app when launching it for the first time (optional), or later on when using the connect/query by ID methods in the app for the first time.
DZGUI will now attempt to locate your default Steam installation and DayZ path. You *must* have DayZ installed in your Steam library in order to proceed. (It can be installed to any drive of your choosing.)
If DZGUI cannot find Steam or cannot find DayZ installed at the detected Steam path, it will prompt you to manually specify the path to your Steam installation.
Specify the top-level entry point to Steam, not DayZ. E.g.,
`/media/mydrive/Steam`, not `/media/mydrive/Steam/steamapps/common/DayZ`
If your Steam installation is in a hidden folder but the file picker dialog does not show hidden folders, ensure that your GTK settings are set to show hidden files.
For GTK 2, edit the file below so that `ShowHidden=true`:
`~/.config/gtk-2.0/gtkfilechooser.ini`
For GTK 3, invoke the command:
`gsettings set org.gtk.Settings.FileChooser show-hidden true`
=== Steam integration & artwork
==== Adding to steam
DZGUI can be added to Steam as a "non-Steam game" in order to facilitate integration with Steam Deck or desktop environments.
Steam Deck: you must switch to "Desktop Mode" and launch Steam from the desktop. Steam Deck Game Mode does not support keyboard entry on some third party apps.
3. Navigate to `$HOME/.local/share/applications/` and select `dzgui.desktop`
4. Select **Add Selected Programs**.
==== Controller layout
An official controller layout for Steam Deck is available in the Steam community layouts section. Search for "DZGUI Official Config" to download it. Long-press the View button and Select button (☰) to toggle D-pad navigation. This creates an additional layer that lets you navigate through menus using the D-pad and A/B to respectively confirm selections and go back. Remember to toggle this layer off again after launching your game to revert back to the master layer.
==== Artwork
The application also ships with Steam cover artwork. It is located under:
```
$HOME/.local/share/dzgui
```
The artwork consists of four parts:
1. Grid: a vertical "box art" grid used on library pages
2. Hero: a large horizontal banner used on the app's details page
3. Logo: a transparent icon used to remove Steam's default app text
4. dzgui: used by freedesktop shortcut to generate a desktop icon; not intended for the user
Updating the artwork:
1. Navigate to the app's details page and right-click the blank image header at the top.
If DZGUI detects a new upstream version, it will prompt you to download it automatically.
It backs up the original version before fetching the new one, then updates your config file with your existing values. Once finished, it will ask you to relaunch the app.
If you decline to upgrade to the new version, DZGUI will continue to the main menu with the current version.
[NOTE]
New versions may include changes to bugs that could prevent you from playing on certain servers.
Upgrading is always advised.
If you experience a problem or need to restore the prior version of DZGUI and/or your configs,
it is enough to simply replace the new version with the old one and relaunch the app.
Requires a BM API key. Use the https://www.battlemetrics.com/servers/dayz[BattleMetrics site] to find servers of interest (proximity, player count, rules, etc.)
Each server has a unique ID. This is the string of numbers at the end of the URL. Copy these IDs.
For example, in the URL https://www.battlemetrics.com/servers/dayz/8039514, the ID is `8039514`.
Enter the ID of a server to have it translated to an IP. After this step, the process continues as though you were connecting by IP.
Requires a BM API key. Use the https://www.battlemetrics.com/servers/dayz[BattleMetrics site] to find servers of interest (proximity, player count, rules, etc.)
Prompts you to add/change a favorite server to the config file by ID. The name of the server will be updated in the header of the app. This server is used when selecting the <<Quick connect to favorite server>> option. If a favorite server is already enabled, this option switches to "Change favorite server."
==== Delete server
Prints a list of human-readable servers currently saved, and lets you delete them by selecting one from the list.
==== List installed mods
Prints a scrollable dialog containing all locally-installed mods and their corresponding symlink IDs and directory names.
==== View changelog
Prints the entire changelog up to the current version in-app.
==== Advanced options
If enabled, this menu contains a sub-menu with various advanced features, enumerated below.
===== Toggle branch
Used to toggle the branch to fetch DZGUI from between `stable` and `testing`.
The app ships with the stable branch enabled, with the testing branch being used to elaborate various experimental features.
===== Toggle debug mode
Toggles debug mode, which is used to perform dry-runs and output what parameters would have been used to connect to a server.
This feature is experimental. It attempts to queue the mods requested for download automatically, rather than prompting the user to subscribe to each one.
Attempts to refresh the version of all local mods to the newest version by checking remote mod hashes and requesting updates from Steam.
This is a convenience feature that attempts to redownload all local mods. Can be used in the event of corruption or file integrity issues. In conjunction with the <<Toggle auto mod install>> feature, this feature is experimental.
Uses xdg-open to open the https://github.com/sponsors/aclist[sponsor page], where you can help fund development, in the system browser.
==== Hall of fame
Uses xdg-open to open the https://aclist.github.io/dzgui/dzgui#_hall_of_fame[Hall of Fame], which recognizes those who actively contributed to the betterment of the application through bug reports and suggestions, in the system browser.
|`auto_install`|permissible values are 0, 1, and 2. These are set internally depending on if the user enabled auto mod installation
|`branch`|by default, set to `stable`; set to `testing` to fetch the testing branch
|`debug`|by default, set to 0; set to `1` to print launch options that would have been run, instead of actually connecting (used for troubleshooting and submitting bug reports)
|`default_steam_path`|the path to the default Steam client installation
|`ip_list`|array of server addresses; a concatenation of the IP/GamePort/Queryport
|`seen_news`|stores a hash of the news item last seen by the client. This is used to suppress news messages until a new one is posted
|`staging_dir`|a directory used to stage mods while downloading. This feature is deprecated and is no longer user-configurable
|===
== Troubleshooting/FAQ
.Mods take a long time to synchronize when subscribing from Workshop
Steam schedules the downloads in the background and processes them as they are subscribed to.
This process is not instantaneous and can take some time.
.Game does not launch through Steam
Check the logs emitted by Steam in the terminal, or in `<steam path>/error.log`.
.Game launches, but throws a "mod missing/check PBO file" error when connecting
In rare cases, the server may be using misconfigured, malformed, or obsolete mods.
This depends on server operators checking their mods for integrity.
.Game and server launches, but when joining the game world, an error occurs
A mod is corrupted or the issue lies with the server. Replace the mods in question and reconnect.
.The game is slow or prone to crashing
DayZ does not manipulate the game itself and does not contribute to/degrade its performance.
If you are experiencing performance degradation, it can be caused by too many mods installed or
by a server-side problem (underpowered server, misconfiguration, etc.) Contract the server administrator
for assistance.
== Hall of fame
This section recognizes users who have gone above and beyond in submitting useful bug reports that helped in tracking down critical issues
or resulted in the elaboration of important features. This list is not exhaustive, and any missing parties are errors of omission, but this does
not diminish the gratitude I have for their contributions.
.bongjutsu
Consistently one of the first to report emergent bugs and provides clear, detailed ways of replicating the issue.
.dj3hac
Provided extensive debug information that was instrumental in solving issues with Flatpak Steam.
.jiriks74
Gives highly relevant information about edge cases, particularly as they concern the Steam beta client, Wayland, desktop environments, and experimental features.
.MatheusLasserr
Consistently provides constructive, straightforward suggestions about UI and readability improvements.
.scandalouss
Tracked down several highly obscure but key bugs in the early development of the application that were breaking discovery of mods.
.StevelDusa
Played a critical role in the elaboration of many of the features we now take for granted by being an early beta tester who not only reported bugs, but
helped workshop and brainstorm various ideas that turned into QOL features.