{"id":15659588,"url":"https://github.com/woozymasta/dayz-ctl","last_synced_at":"2025-07-08T05:15:25.794Z","repository":{"id":63260466,"uuid":"543856773","full_name":"WoozyMasta/dayz-ctl","owner":"WoozyMasta","description":"Command Line Linux Launcher for DayZ Standalone with Fuzzy Finding","archived":false,"fork":false,"pushed_at":"2024-03-26T22:42:03.000Z","size":5657,"stargazers_count":47,"open_issues_count":13,"forks_count":6,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-05-03T23:43:46.376Z","etag":null,"topics":["dayz","dayz-launcher","dayzstandalone","fzf","fzf-interface","fzf-scripts","gum","jq","launcher","linux"],"latest_commit_sha":null,"homepage":"http://dayz-ctl.woozymasta.ru/","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/WoozyMasta.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-10-01T02:02:46.000Z","updated_at":"2025-04-27T16:00:23.000Z","dependencies_parsed_at":"2024-03-26T23:43:12.645Z","dependency_job_id":null,"html_url":"https://github.com/WoozyMasta/dayz-ctl","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WoozyMasta%2Fdayz-ctl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WoozyMasta%2Fdayz-ctl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WoozyMasta%2Fdayz-ctl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WoozyMasta%2Fdayz-ctl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/WoozyMasta","download_url":"https://codeload.github.com/WoozyMasta/dayz-ctl/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252310229,"owners_count":21727509,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dayz","dayz-launcher","dayzstandalone","fzf","fzf-interface","fzf-scripts","gum","jq","launcher","linux"],"created_at":"2024-10-03T13:17:39.873Z","updated_at":"2025-05-04T08:36:15.872Z","avatar_url":"https://github.com/WoozyMasta.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DayZ Command Line Launcher\n\n**dayz-ctl** — this is an experimental launcher (server explorer and launcher)\n[DayZ][] on [Steam][221100] [Proton][] for Linux.\n\n\u003c!-- rule: current lang, other langs sorted by alpha --\u003e\n\u003e This document is available in languages: [eng 🇬🇧][], [rus 🇷🇺][], [ua 🇺🇦][]\n\n![logo][]\n\nAt the time of this project, [Bohemia Interactive][] was still unable to\nmake a working launcher for the game that could correctly install\nmodifications and connect to game servers. That is why this project was\nborn.\n\nKey Features:\n\n* Server Explorer with information about each server\n* Fuzzy search in Server Explorer based on [fzf][]\n* Automatic installation of mods (as an option)\n* A wide range of filters for searching servers (map, time of day,\n  modifications, number of players, first person, password, etc.)\n* Additional information in the form of country of location (using geoip\n  base) and ping for each server\n* Favorites list, last 10 games history and creation of quick launch\n  shortcuts to connect to servers\n* Offline mode [DayZCommunityOfflineMode][] with automatic installation,\n  updates and the ability to select modifications\n* Configuration menu with game launch options, launcher settings, mod\n  controls and statistics\n* Provides a link with detailed server information to [battlemetrics][]\n\nSpecial thanks to [dayz-linux-cli-launcher][] for the idea and\n[dayzsalauncher][] for the API.\n\n## Preview\n\n\u003e ![Launcher Demo](extra/dayz-ctl-demo.svg)\n\u003e **Launcher Demo**\n\n\u003c!-- markdownlint-disable --\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMore screenshots 👈\u003c/summary\u003e\n\u003cdiv style=\"text-align:center\"\u003e\n\u003ctable border=\"0\" cellspacing=\"0\" cellpadding=\"0\" style=\"border: none\"\u003e\n\u003ctr\u003e\n  \u003ctd\u003e\u003cimg loading=\"lazy\" width=\"100%\" src=\"extra/s_main.png\"/\u003e\u003cp\u003eMain menu\u003c/p\u003e\u003c/td\u003e\n  \u003ctd\u003e\u003cimg loading=\"lazy\" width=\"100%\" src=\"extra/s_servers.png\"/\u003e\u003cp\u003eServer browser\u003c/p\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n  \u003ctd\u003e\u003cimg loading=\"lazy\" width=\"100%\" src=\"extra/s_servers_filter.png\"/\u003e\u003cp\u003eServer filters\u003c/p\u003e\u003c/td\u003e\n  \u003ctd\u003e\u003cimg loading=\"lazy\" width=\"100%\" src=\"extra/s_servers_filter_map.png\"/\u003e\u003cp\u003eFilter by map\u003c/p\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n  \u003ctd\u003e\u003cimg loading=\"lazy\" width=\"100%\" src=\"extra/s_servers_filter_applied.png\"/\u003e\u003cp\u003eApplied selected filters\u003c/p\u003e\u003c/td\u003e\n  \u003ctd\u003e\u003cimg loading=\"lazy\" width=\"100%\" src=\"extra/s_servers_favorites.png\"/\u003e\u003cp\u003eFavorites browser\u003c/p\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\n\u003ctr\u003e\n  \u003ctd\u003e\u003cimg loading=\"lazy\" width=\"100%\" src=\"extra/s_servers_history.png\"/\u003e\u003cp\u003eHistory browser\u003c/p\u003e\u003c/td\u003e\n  \u003ctd\u003e\u003cimg loading=\"lazy\" width=\"100%\" src=\"extra/s_servers_search.png\"/\u003e\u003cp\u003eFuzzy search\u003c/p\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n  \u003ctd\u003e\u003cimg loading=\"lazy\" width=\"100%\" src=\"extra/s_offline.png\"/\u003e\u003cp\u003eOffline mode\u003c/p\u003e\u003c/td\u003e\n  \u003ctd\u003e\u003cimg loading=\"lazy\" width=\"100%\" src=\"extra/s_offline_mods.png\"/\u003e\u003cp\u003eMods for offline\u003c/p\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n  \u003ctd\u003e\u003cimg loading=\"lazy\" width=\"100%\" src=\"extra/s_servers_mods.png\"/\u003e\u003cp\u003eServer mods\u003c/p\u003e\u003c/td\u003e\n  \u003ctd\u003e\u003cimg loading=\"lazy\" width=\"100%\" src=\"extra/s_mods.png\"/\u003e\u003cp\u003eMods info\u003c/p\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n  \u003ctd\u003e\u003cimg loading=\"lazy\" width=\"100%\" src=\"extra/s_config.png\"/\u003e\u003cp\u003eConfig menu\u003c/p\u003e\u003c/td\u003e\n  \u003ctd\u003e\u003cimg loading=\"lazy\" width=\"100%\" src=\"extra/s_config_launch.png\"/\u003e\u003cp\u003eLaunch options\u003c/p\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n  \u003ctd\u003e\u003cimg loading=\"lazy\" width=\"100%\" src=\"extra/s_about.png\"/\u003e\u003cp\u003eAbout menu\u003c/p\u003e\u003c/td\u003e\n  \u003ctd\u003e\u003cimg loading=\"lazy\" width=\"100%\" src=\"extra/s_news.png\"/\u003e\u003cp\u003eDayZ News\u003c/p\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\u003c/div\u003e\n\u003c/details\u003e\n\u003c!-- markdownlint-enable --\u003e\n\n## Features of using SteamCMD\n\nThere are two modes of operation of the launcher with and without using\nSteamCMD to manage mods in manual mode.\n\nYou can combine both approaches, for example, subscribe to those\nmodifications that you will definitely need in the future by clicking on the\nlink, and check for updates or force update mods using the launcher. Also,\nyou can not subscribe to the \"doubtful 50 mods\" of the next server and\neasily remove them with one action from the launcher, while maintaining all\nthe mods for which you have a subscription.\n\n### Using SteamCMD\n\n* 🟢 Everything happens automatically\n* 🟢 Automatically check for mod updates right now (forced)\n* 🟡 Mod subscriptions are not created, they are just downloaded\n* 🟡 Requires closing the Steam client to download mods\n* 🔴 Sometimes you need to re-login to Steam\n\n### Not using SteamCMD\n\n* 🟢 Familiar behavior if you have already used other solutions, for example\n  [dayz-linux-cli-launcher][]\n* 🟡 The game itself will not start after downloading mods\n* 🟡 Steam sometimes delays checking for updates and downloads them only\n  after restarting or subscribing/unsubscribing from the mod\n* 🔴 You need to subscribe to mods with your own hands\n\n## Installation\n\n### With installer\n\nFor ease of installation, there is a small script that will do everything\nfor you (at least try to do it)\n\nExecute this:\n\n```bash\ncurl -sSfLA dayz-ctl bit.ly/3Vf2zz3 | bash\n```\n\n### Manual installation\n\nFor the launcher to work, you need to make sure that you have all the\ndependencies installed:\n\n* [jq][] - JSON processing utility\n* [fzf][] - fuzzy search utility\n* [gum][] - utility for creating dialogs and styling output\n* `ping` (`iputils-ping`) - find out the ping to the server (where ICMP is\n  enabled)\n* `geoiplookup` (`geoip-bin`) - find out the country where the server is\n  located\n* `whois` - fallback for geoiplookup, less accurate and slower, but not all\n  entries are in the standard geoip database\n* `curl` - utility for communicating with various APIs over HTTP/S\n* `cut, tr, grep, pgrep, pkill, killal, timeout, sed, awk` (`gawk`) - where\n  without classic utilities in scripts\n* [Steam][] - online service for digital distribution of computer games\n* [SteamCMD][] - steamcmd Steam console client\n* [DayZ][221100] - and of course the game itself\n\nThen you can clone the repository:\n\n```bash\ngit clone git@github.com:WoozyMasta/dayz-ctl.git\n# or\ngit clone https://github.com/WoozyMasta/dayz-ctl.git\n# and run\ncd dayz-ctl\n./dayz-ctl\n```\n\nOr download the script file itself:\n\n```bash\ncurl -sSfL -o ~/.local/bin/dayz-ctl \\\n  https://raw.githubusercontent.com/WoozyMasta/dayz-ctl/master/dayz-ctl\nchmod +x ~/.local/bin/dayz-ctl\n# and run\ndayz-ctl\n```\n\n### Emoji\n\nEmojis can be used to properly display elements, you may need to install them,\nfor example, you can use the [Noto][] font from Google.\n\nBelow is a list with the package name for different distributions:\n\n* `fonts-noto-color-emoji` - debian/ubuntu\n* `google-noto-emoji-color-fonts` - centos\n* `google-noto-emoji-fonts` - fedora\n* `noto-fonts-emoji` - arch\n* `font-noto-emoji` - alpine\n* `noto-coloremoji-fonts` - suse\n\nOr if you don't like emoji or can't use them for some reason, you can apply\na patch to replace them with strings:\n\n```bash\nsed -e 's/▫️/•/g' -e 's/🟩/✕/g' -e 's/⬛/ /g' -e 's/🕒/time/g' -e 's/❔/?/g' \\\n  -e 's/🟢/ok/g' -e 's/🔴/no/g' -e 's/🌙/night/g' -e 's/☀️/day/g' \\\n  -e 's/🔒/yes/g' -e 's/🔓/no/g' -e 's/✅/ok/g' -e 's/❌/no/g' \\\n  -i \"$(which dayz-ctl)\"\n```\n\n## Tested distros\n\n* 🟢 Debian bookworm\n* 🟢 Debian bullseye\n* 🟢 Debian buster\n* 🟢 Ubuntu 18.04\n* 🟢 Ubuntu 20.04 💯\n* 🟢 Ubuntu 22.04 💯\n* 🟢 Fedora latest\n* 🟡 Centos 7 (small bugs)\n* 🟡 Centos stream9 (small bugs)\n* 🟢 Alpine latest\n* 🟢 Alpine edge\n* 🟢 Archlinux\n* 🟡 Opensuse leap (small bugs)\n\n## Other\n\n### Steam\n\nIt is better to remove all DayZ launch options in Steam and manage them from\nthe launcher or vice versa. Since the keys can be duplicated and this can\ncause confusion, or in the worst case, cut off some of the keys, because the\nargument string has a length limit, and on servers with a large number of\nmods, a very long launch parameter is also used.\n\nThose. leave the launch options empty, or specify only the set of auxiliary\nutilities and variables you need, for example:\n\n```bash\nMANGOHUD=1 ENABLE_VKBASALT=1 gamemoderun %command%\n```\n\n### Search syntax\n\nYou can enter multiple search terms separated by spaces. e.g. `^namalsk DE\n!PVE !RP`\n\n\u003c!-- markdownlint-disable MD013 --\u003e\n\n| token     | match type                 | description                          |\n| --------- | -------------------------- | ------------------------------------ |\n| `sbtrkt`  | fuzzy match                | Items that match `sbtrkt`            |\n| `wild`    | exact-match (quoted)       | Items that include `wild`            |\n| `^music`  | prefix-exact-match         | Items that start with `music`        |\n| `.mp3$`   | suffix-exact-match         | Items that end with `.mp3`           |\n| `!fire`   | inverse-exact-match        | Items that do not include `fire`     |\n| `!^music` | inverse-prefix-exact-match | Items that do not start with `music` |\n| `!.mp3$`  | inverse-suffix-exact-match | Items that do not end with `.mp3`    |\n\n\u003c!-- markdownlint-enable MD013 --\u003e\n\nA term with a single bar character acts as an OR operator\n\n```regexp\nPVE | RP\n```\n\n## Environment variables\n\nYou can fine-tune how the launcher works with the help of environment\nvariables that you can pass to the environment as usual or write to the\nconfiguration file `$HOME/.local/share/dayz-ctl/dayz-ctl.conf` (by default)\n\nList of available variables:\n\n* **`DAYZ_CTL_VERSION`** — application version\n* **`DAYZ_CTL_NAME`**=`dayz-ctl` — application name\n* **`DAYZ_GAME_ID`**=`221100` — Steam game ID\n* **`APPLICATIONS_DIR`**=`$HOME/.local/share/applications` — directory for\n  storing application shortcuts\n* **`DAYZ_CTL_DIR`**=`$HOME/.local/share/dayz-ctl` — launcher working\n  directory\n* **`DAYZ_CTL_BIN_DIR`**=`$HOME/.local/share/dayz-ctl/bin` — directory for\n  storing additional executable files\n* **`DAYZ_REQUEST_TIMEOUT`**=`10` — standard timeout for HTTP requests in\n  seconds\n* **`DAYZ_CONFIG_FILE`**=`$DAYZ_CTL_DIR/$DAYZ_CTL_NAME.conf` — dayz-ctl\n  configuration file\n* **`DAYZ_SERVER_DB`**=`$DAYZ_CTL_DIR/servers.json` — server database file\n* **`DAYZ_SERVER_DB_TTL`**=`300` — TTL for server database in seconds\n* **`DAYZ_SERVER_REQUEST_TIMEOUT`**=`30` — timeout for getting a list of\n  servers in seconds\n* **`DAYZ_NEWS_DB`**=`$DAYZ_CTL_DIR/news.json` — news base file\n* **`DAYZ_NEWS_DB_TTL`**=`3600` — TTL for the news database in seconds\n* **`DAYZ_MODS_DB`**=`$DAYZ_CTL_DIR/mods.json` — modification database file\n* **`DAYZ_PROFILE`**=`$DAYZ_CTL_DIR/profile.json` — user profile file\n* **`DAYZ_HISTORY_SIZE`**=`10` - server explorer history size\n* **`DAYZ_FZF_HISTORY`**=`$DAYZ_CTL_DIR/.$DAYZ_CTL_NAME-history` — history\n  file for fuzzy search\n* **`DAYZ_USERAGENT`**=`\"$DAYZ_CTL_NAME $DAYZ_CTL_VERSION\"` — User-Agent\n  used for HTTP requests\n* **`DAYZ_API`**=`https://dayzsalauncher.com/api/v1` — [API][dayzsalauncher]\n  address for getting a list of servers\n* **`DAYZ_STEAMCMD_ENABLED`**=`true` - switch to enable or disable the use\n  of [SteamCMD][]\n* **`DAYZ_FILTER_MOD_LIMIT`**=`10` - default mod limit filter value\n* **`DAYZ_FILTER_PLAYERS_LIMIT`**=`50` - default player limit filter value\n* **`DAYZ_FILTER_PLAYERS_SLOTS`**=`60` — default slot limit filter value for\n  players\n\n## Useful\n\n* \u003chttps://github.com/FeralInteractive/gamemode\u003e - can help with game\n  performance\n* \u003chttps://github.com/flightlessmango/MangoHud\u003e - displays information about\n  resource usage and allows you to limit the frame rate\n* \u003chttps://github.com/DadSchoorse/vkBasalt\u003e - image enhancement, adds\n  clarity to the picture\n* \u003chttps://github.com/crosire/reshade-shaders\u003e - additional shaders, can be\n  used from vkBasalt\n* \u003chttps://github.com/StuckInLimbo/OBS-ReplayBuffer-Setup\u003e - setting up\n  replay recording in OBS\n* \u003chttps://github.com/matanui159/ReplaySorcery\u003e - utility for recording\n  replays\n\nSteam launch options with MangoHud, vkBasalt and gamemode enabled:\n\n```sh\nMANGOHUD=1 ENABLE_VKBASALT=1 gamemoderun %command%\n```\n\nAlso, without resorting to third-party utilities, you can display an overlay\nwith information about resources and limit FPS using standard [DXVK][]\ntools, for example:\n\n```sh\nDXVK_HUD=fps DXVK_FRAME_RATE=60 gamemoderun %command%\n```\n\nMeaning of `DXVK_HUD=fps` ... `DXVK_HUD=full`:\n\n* `devinfo` - Displays the name of the GPU and the driver version.\n* `fps` - Shows the current frame rate.\n* `frametimes` - Shows a frame time graph.\n* `submissions` - Shows the number of command buffers submitted per frame.\n* `drawcalls` - Shows the number of draw calls and render passes per frame.\n* `pipelines` - Shows the total number of graphics and compute pipelines.\n* `descriptors` - Shows the number of descriptor pools and descriptor sets.\n* `memory` - Shows the amount of device memory allocated and used.\n* `gpuload` - Shows estimated GPU load. May be inaccurate.\n* `version` - Shows DXVK version.\n* `api` - Shows the D3D feature level used by the application.\n* `cs` - Shows worker thread statistics.\n* `compiler` — Shows shader compiler activity\n* `samplers` - Shows the current number of sampler pairs used [D3D9 Only]\n* `scale=x` — Scales the HUD by a factor of x (e.g. 1.5)\n\nFrame rate limit `DXVK_FRAME_RATE=0`\n\n\u003c!-- Links --\u003e\n[eng 🇬🇧]: README.md\n[ua 🇺🇦]: README.ua.md\n[rus 🇷🇺]: README.ru.md\n[logo]: extra/dayz-ctl-logo.svg\n\n[DayZ]: https://dayz.com\n[Bohemia Interactive]: https://www.bohemia.net/games/dayz\n[221100]: https://store.steampowered.com/app/221100\n[dayz-linux-cli-launcher]: https://github.com/bastimeyer/dayz-linux-cli-launcher\n[dayzsalauncher]: https://dayzsalauncher.com\n[battlemetrics]: https://www.battlemetrics.com\n[SteamCMD]: https://developer.valvesoftware.com/wiki/SteamCMD\n[fzf]: https://github.com/junegunn/fzf\n[jq]: https://github.com/stedolan/jq\n[gum]: https://github.com/charmbracelet/gum\n[DayZCommunityOfflineMode]: https://github.com/Arkensor/DayZCommunityOfflineMode\n[Steam]: https://store.steampowered.com/about/\n[Proton]: https://github.com/ValveSoftware/Proton\n[Noto]: https://fonts.google.com/noto\n[DXVK]: https://github.com/doitsujin/dxvk\n\n\u003c!--\nDayZ DayZSA dayzstandalone dayz standalone linux nix proton steam\nDayZ launcher Linux\nDayZ servers browser linux\nDayZ Steam Proton\n--\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwoozymasta%2Fdayz-ctl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwoozymasta%2Fdayz-ctl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwoozymasta%2Fdayz-ctl/lists"}