Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DZLS - DayZ Linux Standalone

A native Linux launcher for DayZ that provides server browsing, automatic mod management, and game launching with correct parameters - bypassing the broken official launcher.

Features

  • Server Browser: Fetches ~19,000 servers from DZSA API with search, sort, and filter
  • Automatic Mod Subscription: Uses Steamworks SDK to subscribe to missing mods - no Workshop pages, no manual clicking
  • Mod Management: Check updates, re-download, bulk delete, symlink management
  • Game Launch: Uses steam -applaunch with -nolauncher to skip the broken official DayZ launcher
  • Favorites: Mark servers as favorites, always shown at top
  • Server History: Persists recently joined servers
  • Direct Connect: Join via IP:PORT without browsing
  • In-Game Name: Set and persist your player name
  • Pre-flight Checks: Validates vm.max_map_count, BattlEye runtime, and DayZ executable

Demo

DZLS Server Browser

Server browser showing favoriting, searching, joining, auto-subscribing to a mod.

Note: GIF quality is reduced for file size. The actual TUI is crisp and responsive.

Binary Installation (Recommended for End Users)

Download the latest release tarball from GitHub Releases:

# Download
wget https://github.com/realvolk/DZLS/releases/latest/download/dzls-1.0.0-linux-x86_64.tar.gz

# Extract
tar -xzf dzls-1.0.0-linux-x86_64.tar.gz

# Run
cd dzls
./dzls

The binary release includes everything needed:

  • dzls - compiled binary
  • libsteam_api.so - Steamworks SDK (licensed for redistribution)
  • steam_appid.txt - Steam App ID

No SDK download required. No build tools needed. Just extract and run.

Steam must be running.

Requirements

Requirement Version/Value
Steam Native, Flatpak, or Snap
DayZ Stable (221100)
Proton Experimental recommended
Proton BattlEye Runtime Required for BattlEye servers
vm.max_map_count ≥ 1048576
libcurl ≥ 7.60
ncurses ≥ 6.0

Building From Source

1. Clone the repository

git clone https://github.com/realvolk/DZLS.git
cd DZLS

2. Steamworks SDK (Required for Auto-Mod Download)

DZLS uses the Steamworks SDK for automatic Workshop subscriptions. The SDK is NOT included in this repository.

Obtain the Steamworks SDK:

  1. Go to https://partner.steamgames.com/
  2. Sign in with your Steam account
  3. Navigate to Steamworks SDK → Download
  4. Read and accept the SDK Access Agreement
  5. Download steamworks_sdk.zip

Extract:

unzip steamworks_sdk.zip -d steamworks_sdk

The SDK must be placed at:

DZLS/steamworks_sdk/sdk/
├── public/steam/
│   ├── steam_api_flat.h
│   └── isteamugc.h
└── redistributable_bin/
    └── linux64/
        └── libsteam_api.so

No download link is provided. You must obtain it from Valve directly and agree to their license terms.

3. Build

make

4. Run

./dzls

The Steam client must be running.

Using DZLS

Server Browser

Key Action
↑ / ↓ Navigate servers
PgUp / PgDn Page up/down
Enter Join selected server
1-5 Sort (Players/Name/Map/Mods/Ping)
6-9 Toggle filters (Password/Empty/Full/Offline)
0 Reset all filters
R Ping all visible servers
P Ping selected server only
F Toggle favorite on selected server
F3 Direct Connect (IP:PORT)
N Edit player name
/ Search by name or map
F2 Mods screen
F1 Help
Q Quit

Joining a Server

  1. Browse or search for a server
  2. Press Enter to select
  3. Confirm or edit your profile name
  4. If password required, enter it
  5. DZLS checks mod requirements
  6. Missing mods prompt: "Download? (Y/N)"
  7. Steamworks SDK subscribes automatically
  8. Steam downloads in background
  9. DZLS waits for downloads
  10. Symlinks created
  11. Game launches with correct parameters

Direct Connect

Press F3 and enter an IP:PORT.

Direct Connect
Enter IP:PORT
Example: 192.168.1.100:2302

Address: [192.168.1.100:2302]

DZLS validates the IP and port, then queries the server for mod requirements.

Mods Screen

Press F2 to open the mods screen.

Tab 1: Installed Mods

  • Lists all Workshop mods installed for DayZ
  • Space: Toggle selection for bulk operations
  • V: Check for updates (cached, 30s)
  • R: Re-download selected mods (delete + DownloadItem)
  • D: Delete selected mods (folders + symlinks)

Tab 2: Server History

  • Shows recently joined servers and their mod lists

Favorites

Press F on any server to toggle favorite. Favorited servers:

  • Show * in the first column
  • Always appear at the top of the list
  • Persist across sessions in favorites.json

Configuration

Config file: $XDG_CONFIG_HOME/dzls/config.toml

[steam]
steam_root = ""                    # Auto-detected if empty
steam_executable = ""              # Auto-detected if empty

[game]
profile_name = "PlayerName"

[network]
query_threads = 12
query_timeout_ms = 1000

[security]
remember_server_passwords = false

[ui]
show_empty_servers = true
show_password_servers = true

[system]
check_vm_max_map_count = true

Pre-flight Checks

Before launching, DZLS validates:

  1. vm.max_map_count ≥ 1048576

    sudo sysctl -w vm.max_map_count=1048576
  2. Proton BattlEye Runtime installed Search "Proton BattlEye Runtime" in Steam

  3. DayZ executable exists Under Proton, the executable is DayZ_x64.exe

Creating a Release Tarball

make release

Produces dzls-1.0.0-linux-x86_64.tar.gz containing:

  • dzls - compiled binary
  • libsteam_api.so - Steamworks SDK redistributable
  • steam_appid.txt - App ID for Steam API

Architecture

┌─────────────────────────────────────────────────────────────┐
│                    USER INTERFACE LAYER                     │
│                    (TUI: ncurses)                           │
└───────────────────────────┬─────────────────────────────────┘
                            │
┌───────────────────────────▼─────────────────────────────────┐
│                   ORCHESTRATION LAYER                      │
│  - State machine                                            │
│  - Mod sync workflow                                        │
│  - Launch coordination                                      │
│  - Pre-flight orchestration                                 │
└───────────┬───────────────┬───────────────┬─────────────────┘
            │               │               │
┌───────────▼───────┐ ┌─────▼──────┐ ┌─────▼─────────────────┐
│  DZSA API         │ │ A2S MANAGER│ │  STEAMWORKS SDK      │
│  - Server list    │ │ - Thread pool│ │ - SubscribeItem      │
│  - Cache          │ │ - Socket    │ │ - DownloadItem       │
│                   │ │ - Parse     │ │ - GetItemState       │
└───────────────────┘ └────────────┘ └───────────────────────┘

Dependencies

Library Version Purpose
libcurl ≥ 7.60 HTTP requests
ncurses ≥ 6.0 Terminal UI
cJSON ≥ 1.7 JSON parsing
pthread Any Threading
libsteam_api SDK v1.65 Workshop subscriptions

License

IRX License 1.0

Copyright (c) 2026 realvolk (Volk)

The Steamworks SDK is not included in this repository. Users must download it from the Steamworks partner site and agree to Valve's license terms.

Acknowledgments

  • DZSA Launcher for server API
  • Steamworks SDK for Workshop integration
  • dayz-py-launcher and dayz-ctl projects for Linux inspiration

About

Native Linux DayZ launcher with server browser, automatic Workshop mod management.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages