A Cataclysm: Dark Days Ahead launcher with additional features

Overview

CDDA Game Launcher

A Cataclysm: Dark Days Ahead launcher with additional features.

Download here.

Implemented features

  • Launching the game
  • Detecting the game version and build number
  • Retreiving the available update builds
  • Automatically updating the game while preserving the user modifications
  • Soundpack manager
  • Mod manager
  • Save backups and automatic backups

Planned features

  • Tileset manager
  • Font presets

FAQ

Where is my previous version?

Is it stored in the previous_version directory inside your game directory.

How does the launcher update my game?

  • The launcher downloads the archive for the new version.
  • If the previous_version subdirectory exists, the launcher moves it in the recycle bin.
  • The launcher moves everything from the game directory in the previous_version subdirectory.
  • The launcher extracts the downloaded archive in the game directory.
  • The launcher inspect what is in the previous_version directory and it copies the saves, the mods, the tilesets, the soundpacks and a bunch of others useful files from the previous_version directory that are missing from the downloaded archive to the real game directory. It will assume that mods that are included in the downloaded archive are the newest and latest version and it will keep those by comparing their unique ident value.

I think the launcher just deleted my files. What can I do?

The launcher goes to great lengths not to delete any file that could be important to you. With the default and recommended settings, the launcher will always move files instead of deleting them. If you think you lost files during an update, check out the previous_version subdirectory. That is where you should be able to find your previous game version. You can also check for files in your recycle bin. Those are the main 2 places where files are moved and where you should be able to find them.

My antivirus product detected the launcher as a threat. What can I do?

Poor antivirus products are known to detect the launcher as a threat and block its execution or delete the launcher. A simple workaround is to add the launcher binary in your antivirus whitelist or select the action to trust this binary when detected.

If you are paranoid, you can always inspect the source code yourself and build the launcher from the source code. You are still likely to get false positives. There is little productive efforts we can do as software developers with these. We have a nice building guide for those who want to build the launcher from the source code.

Many people are dying to know why antivirus products are identifying the launcher as a threat. There has been many wild speculations to try to pinpoint the root cause for this. The best way to find out would be to ask those antivirus product developers. Unfortunatly, they are unlikely to respond for many good reasons. We could also speculate on this for days on end. Our current best speculation is because we use a component called PyInstaller that is commonly flagged as a threat. Now, if you want see how deep the rabbit hole goes, you can keep on searching or speculating on why PyInstaller itself is commonly flagged as a threat. This research is left as an exercise to the reader.

Many people are also asking why not simply report the launcher as a false positive to those antivirus products. We welcome anyone who wants to take the time to do it, but we believe it is mostly unproductive. Those processes are often time-consuming and ignored. Someone would also have to do them all over again each time we make a new release or when one of the component we use is updated or changed. The current state of threat detection on PC is quite messy and sad especially for everyone using free antivirus products.

I found an issue with the game itself or I would like to make a suggestion for the game itself. What should I do?

You should contact the game developpers about this. We are mainly providing a tool to help with the game. We cannot provide support for the game itself.

How do I update to a new version of the game launcher?

The launcher will automatically check for updated version on start. If it finds one, the launcher will prompt you to update. You can always download the latest version on github. Those using the portable version will have to manually download and manually update the launcher. From the help menu, you can also check for new updates.

The launcher keeps crashing when I start it. What can I do?

You might need to delete your configs file to work around this issue. That filename is configs.db and it is located in %LOCALAPPDATA%\CDDA Game Launcher\. Some users have reported and encountered unrelated starting issues. In some cases, running a debug version of the launcher to get more logs might help to locate the issue. Creating an issue about this is probably the way to go.

I just installed the game and it already has a big list of mods. Is there something wrong?

The base game is bundled with a good number of mods. You can view them more like modules that you can activate or ignore when creating a new world in game. These mods or modules can provide a different game experience by adding new items, buildings, mobs, by disabling some game mechanics or by changing how you play the game. They are a simple way of having a distinctive playthrough using the same game engine. The game is quite enjoyable without any of these additional mods or by using the default mods when creating a new world. You should probably avoid using additional mods if you are new to the game for your first playthrough to get familiar with the game mechanics. Once you are comfortable, after one or a few playthroughs, I suggest you check back the base game mods or even some external mods for your next world.

A mod in the repository is broken or is crashing my game when enabled. What can I do?

It is frequent for game updates to break mods especially on the experimental branch. You could try to see if there is an update for that mod. You could try updating that mod by removing it and installing it again. You could try to contact the mod author and ask him to update his mod.

Maintaining external mods can be a difficult task for an ever expanding and changing base game. The only sure and official way to have good working mods is to have them included in the base game. If you are concerned about having a reliable gaming experience, you should consider using the base game mods exclusivly and you should consider using the stable branch.

If you find out a mod in the repository is clearly abandonned and not working anymore, please open an issue about it so it can be removed.

Will you make a Linux or macOS version?

Most likely not. You can check the linux issue and the mac issue for more information.

It does not work? Can you help me?

Submit your issues on Github. Try to report bugs effectively.

Building

You can learn how to run and build the launcher by checking our building guide.

License

This project is licensed under the terms of the MIT license.

Permission to use the launcher icon was given by Paul Davey aka Mattahan.

Contributing to this project

Anyone and everyone is welcome to contribute. Please take a moment to review the guidelines for contributing.

Code of conduct

Participants in this projet are expected to follow the Code of Conduct.

Comments
  • Prepare project to use Zanata for translations

    Prepare project to use Zanata for translations

    I realized that with the recent refactors I made, I was changing some translation strings and they needed to be re-translated. Suddenly I realized some translations haven't been updated in a while and the project don't have an easy way to receive translation contributions without fiddling with gettext tools... Let's be real, potential contributors to translatation are pushed off if they need to actually fiddle with tons of tools instead of actually translating, most of them aren't even tech savvy or devs...

    I always thought that web tools for translation like Transifex were super cool and wanted to configurate one of these services for CDDA Launcher. I checked Transifex (which is actually used by CDDA itself too), but they require an "approved" registration for open source projects as the service is usually paid. So I googled around and I found Zanata, which seems a similar open source service with less registration hassle.

    I already configured everything the project needs to push and get translation from this page. The workflow would be:

    • You code stuff in CDDA Launcher, create or update translatable strings.
    • Run setup.py zanata_expush to extract strings and push them to Zanata service
    • Translators register on Zanata (free account and painless short steps)
    • Translators do their work on a nice web interface with no tool required.
    • You register, you approve them their translations (or not)
    • Run setup.py zanata_pull --approved-only to get all the strings you approved in the web interface. Or no --approved-only and you get everything anyways.
    • At this point, if you run setup.py create_installer it would include the new translations (no need to do anything else).

    I already setup a temporary page for the project, so you could see it, register and join to check (cdda-launcher-test in Zanata). But if you want you can register your own and just change the configuration files (just so you can get the ownership of it, since it's your project)

    If you wanna create your own, you only need to: create an account, create a project, add a version, update the zanata.xml file and configure your client (take a good look at that link, it's how you setup the client in your PC) and run setup.py zanata_expush. If you want to boostrap your new project and upload existing translations too you need to execute setup.py zanata_push --push-translations too (this is only for an initial setup, because it overwrites translations in the server)

    A note worth mentioning: after I had a good progress in the configuration and almost everything working, I noticed some bad news around, Zanata was an open source project sponsored by Red Hat, but it seems they pulled the main devs from the projects a few months ago. The Zanata project seems mature and still hosted, so at least for now it works and it's better than you had before. But if you wanna try other service or maybe try getting a Transifex account for this project, maybe I could help setting it up too.

    opened by KurzedMetal 45
  • Cant Install launcher due to previous version not being uninstalled, despite it being uninstalled.

    Cant Install launcher due to previous version not being uninstalled, despite it being uninstalled.

    I encountered a issue with the cdda launcher several weeks ago where it would not start despite being in my task manager. As I figured there might be a issue with my installation, I deleted all the files from my computer, along with all cdda game files as I wanted a clean installation. However after downloading the launcher and attempting to install it, a error message informs me that it was unable to uninstall the previous version of the game and it aborts installation. I have searched my entire pc for the keywords cdda or cataclysm but there is no results. So I am unable to install because of some ghost installation that does not exist.

    The error message. Error message

    opened by ANormalPers0n 22
  • Deny players updating if they install CDDAGL inside CDDA folder

    Deny players updating if they install CDDAGL inside CDDA folder

    Improve checks on user selected game directory. Add a cute icon hinting the state of the directory. This fixes #350, when the user install CDDAGL inside CDDA, they'll get an error inside the launcher, won't be able to update, install or do anything unless they change either CDDAGL installation or CDDA folder.

    opened by KurzedMetal 17
  • Cdda game launcher fails to start?

    Cdda game launcher fails to start?

    Describe the bug I try to open the launcher and it loads part of the way then stops and freezes giving a (Not responding) Msg

    To Reproduce Steps to reproduce the behavior: Open the Launcher

    Expected behavior It to start and Load the changelog or let me start the game

    Screenshots image

    Desktop (please complete the following information):

    • OS: Windows Ten

    Additional context Not that I know of sorry

    opened by SirClarke 14
  • Launcher failing to update mods correctly, causing load errors

    Launcher failing to update mods correctly, causing load errors

    mj

    Confirmed to affects Arcana and Magic Items, Cata++, probably PK's Rebalance. Others probable but unsure.

    For whatever reason, people updating their mods via the launcher are still getting errors caused by https://github.com/CleverRaven/Cataclysm-DDA/pull/24183, despite the master branches of affected mods having since been updated to fix that.

    It's gotten to the point where I've had to tell several people to update their mods manually instead of using the launcher, and I STILL get complaints about a bug I've already fixed.

    opened by chaosvolt 14
  • Point the launcher at the new build system

    Point the launcher at the new build system

    Is your feature request related to a problem? Please describe. With the Jenkins build bot being migrated away from in favor of Github actions, the launcher can no longer be used to update the game.

    Describe the solution you'd like Point the launcher at the new build system.

    Describe alternatives you've considered I dunno. I could learn enough python to do it myself, I guess? That may take a while, and it sounds like a lot of work.

    Additional context Add any other context or screenshots about the feature request here.

    opened by Inglonias 13
  • How can I treat the fatal error detected problem

    How can I treat the fatal error detected problem "Failed to execute script pyi_rth_pkgres

    Describe the bug A clear and concise description of what the bug is.

    To Reproduce Steps to reproduce the behavior:

    1. Go to '...'
    2. Click on '....'
    3. Scroll down to '....'
    4. See error

    Expected behavior A clear and concise description of what you expected to happen.

    Screenshots If applicable, add screenshots to help explain your problem.

    Desktop (please complete the following information):

    • OS: [e.g. Windows]
    • Version [e.g. 10]

    Additional context Add any other context about the problem here.

    opened by MelexKrieger 13
  • Fatal Error: Failed to execute script launcher

    Fatal Error: Failed to execute script launcher

    For the past months, every time I've tried to open up the launcher I've recieved this error: Screenshot_3

    I have tried messing around with the install locations, turning all antivirus potential off, and more reinstalls than I can remember. It seems to be happening regardless of the version, and it's quite strange as I've used the launcher for a good long while by this point. It popped out of nowhere, basically.

    My OS is Windows 10, let me know if you need any more info.

    I'm aware that a similar issue was already posted (#109), but my issues still persist despite doing the steps entailed within that issue.

    opened by spoompkin 13
  • Crash: Unhandled exception on startup

    Crash: Unhandled exception on startup

    Downloaded the new launcher version manually (Autoupdate failed) and ran it. On startup I see the launcher briefly, then it crashes and I'm notified of the unhandled exception.

    OS is Windows 10 Professional x64

    I tried to run the launcher from D:\Dropbox\CDDA\ and C:\DDA\ - same result.

    • Version: 0.9.1
    • Type: <class 'ValueError'>
    • Value: Unsupported locale 'None'
    • Traceback:
      File "cddagl\ui.py", line 890, in timeout
      File "site-packages\arrow\arrow.py", line 602, in humanize
      File "site-packages\arrow\locales.py", line 21, in get_locale
    
    
    opened by Cheet4h 13
  • Missing api-ms-win-core-path-l1-1-0.dll

    Missing api-ms-win-core-path-l1-1-0.dll

    When I try to run the launcher, I get a message stating that api-ms-win-core-path-l1-1-0.dll is missing. This has only happened after the launcher updated to version 1.5.3. To Reproduce Laptop with windows 7. Update launcher to version 1.5.3. Run. Desktop

    • OS: Windows 7 (64-Bit)
    opened by jwc1015 12
  • Windows defended detects a trojan and deletes the launcher

    Windows defended detects a trojan and deletes the launcher

    Describe the bug Detected: Trojan:Win32/Wacatac.D4!ml Status: Quarantined Date: 9/21/2020 1:00 PM Details: This program is dangerous and executes commands from an attacker.

    Affected Items: file: C:\Users\elish\AppData\Local\Programs\CDDA Game Launcher\launcher.exe file: C:\Users\elish\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\CDDA Game Launcher.lnk startup: C:\Users\elish\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\CDDA Game Launcher.lnk

    To Reproduce Start the launcher after downloading it

    Expected behavior The launcher not to be quarantined.

    Screenshots image

    Desktop (please complete the following information):

    • OS: Windows
    • Version 1.4.12
    opened by meelock 12
  • Unhandled exception: Game launch error

    Unhandled exception: Game launch error

    • Description: Launching the game causes an error message to rapidly blink in and out repeatedly till you manage to click exit on it,
    • Version: 1.5.6
    • OS: Windows-10-10.0.19044-SP0 (64-bit)
    • Type: <class 'OverflowError'>
    • Value: argument 2 overflowed: value must be in the range -2147483648 to 2147483647
    • Traceback:
      File "C:\Program Files (x86)\CDDA Game Launcher\cddagl\ui\views\backups.py", line 968, in timeout
        progress_bar.setRange(0, self.total_backup_size)
    
    
    opened by Mister-Cultist 0
  • Unhandled exception: [Enter a title]

    Unhandled exception: [Enter a title]

    • Description: [Enter what you did and what happened]
    • Version: 1.5.6
    • OS: Windows-10-10.0.19044-SP0 (64-bit)
    • Type: <class 'OSError'>
    • Value: [WinError 4393] Taggen i reanalyseringspunktbufferen er ugyldig: 'C:\Users\Slalie\OneDrive - Rogaland Fylkeskommune EES\Dokumenter\cdda\cdda\data\mods\DinoMod\mapgen\nested'
    • Traceback:
      File "C:\Users\Slalie\AppData\Local\Programs\CDDA Game Launcher\cddagl\ui\views\main.py", line 252, in showEvent
        self.game_directory_changed()
      File "C:\Users\Slalie\AppData\Local\Programs\CDDA Game Launcher\cddagl\ui\views\main.py", line 659, in game_directory_changed
        self.update_mods()
      File "C:\Users\Slalie\AppData\Local\Programs\CDDA Game Launcher\cddagl\ui\views\main.py", line 545, in update_mods
        mods_tab.game_dir_changed(directory)
      File "C:\Users\Slalie\AppData\Local\Programs\CDDA Game Launcher\cddagl\ui\views\mods.py", line 1290, in game_dir_changed
        self.scan_size(mod_info))
      File "C:\Users\Slalie\AppData\Local\Programs\CDDA Game Launcher\cddagl\ui\views\mods.py", line 1200, in scan_size
        current_scan = scandir(next_scans.popleft())
    
    
    opened by DrKevlagg 0
  • Unhandled exception: [An error with the progress bar crashed the launcher]

    Unhandled exception: [An error with the progress bar crashed the launcher]

    • Description: [I don't know why this would happen. The size of all my saves combined, according to the launcher is 725mb. I use a couple 3rd Party mods and was updating from version "2022-10-19-0515" to "2022-10-30-0948".]
    • Version: 1.5.6
    • OS: Windows-10-10.0.19043-SP0 (64-bit)
    • Type: <class 'OverflowError'>
    • Value: argument 2 overflowed: value must be in the range -2147483648 to 2147483647
    • Traceback:
      File "C:\Users\jonih\AppData\Local\CDDA Game Launcher\cddagl\ui\views\main.py", line 3583, in step
        progress_bar.setRange(0, self.total_copy_size)
    
    
    opened by Korcalius 1
  • Tried to update the game and launcher crashed at the end and didnt update

    Tried to update the game and launcher crashed at the end and didnt update

    • Description: Tried to update the game and launcher crashed mid downloading
    • Version: 1.5.6
    • OS: Windows-10-10.0.19044-SP0 (64-bit)
    • Type: <class 'PermissionError'>
    • Value: [Errno 13] Permission denied: 'C:\Program Files (x86)\CDDA Game Launcher\cdda-windows-tiles-x64-2022-09-30-0533.zip'
    • Traceback:
      File "C:\Program Files (x86)\CDDA Game Launcher\cddagl\ui\views\main.py", line 2305, in timeout
        shutil.move(self.downloaded_file, archive_dir)
      File "shutil.py", line 811, in move
      File "shutil.py", line 435, in copy2
      File "shutil.py", line 264, in copyfile
    
    
    opened by youssefmhmdabd 0
  • Something is broken in the last versions updated by launcher

    Something is broken in the last versions updated by launcher

    Describe the bug Updated as always, game load to main menu but wont load my save and prompts pic related to main menu. Try to create new game, same error. Made launcher install a clean copy in new folder, no mods no saves no soundpacks just fresh, try to start new game and same error. Downloaded latest version from cataclysmdda.org/experimental and works with my save (sees_player_retro mod broke for some reason but everything else works normally).

    To Reproduce Steps to reproduce the behavior:

    1. Update or install game with laucher.
    2. Game stops working.

    Expected behavior Launcher update game instead of breaking it.

    Screenshots imagen

    Desktop (please complete the following information):

    • OS: Windows
    • Version 7

    Additional context None.

    opened by Shibimon 1
  • no bd

    no bd

    • Name: [Enter the name of the mod]
    • Url: [Enter the Url where we can find the mod]
    • Author: [Enter the name of the author]
    • Homepage: [Enter the Url of the author website or where the mod was published]
    • Mod not found in version: 1.5.6
    opened by Razerblade333 0
Releases(v1.5.6)
Owner
Rémy Roy
Rémy Roy
A solution program of 24. game.

A solution program of 24. game.

1 Dec 12, 2022
Finding a method to objectively quantify skill expression in games, using reinforcement learning

Analyzing Skill Expression in Games This is a repo where I describe a method to measure the amount of skill expression games have. Table of Contents M

Marcus Chiam 4 Nov 19, 2022
Stock game is a python program that simulates real-life stock marketing, saving, and investments

Stock game is a python program that simulates real-life stock marketing, saving, and investments. Users get to trade and manage their portfolio and manage their 100,000 dollar portfolio.

Sai Praneth Raju K. 1 Jul 14, 2022
This is a repository created to run a workshop on Game Theory using the programming language Python and more specifically an open-source software called the Axelrod Python library

Game-Theory-and-Python This is a repository created to run a workshop on Game Theory using the programming language Python and more specifically an op

Nikoleta Glynatsi 136 Dec 01, 2022
Typing test and practice on command line without the need of any internet connection

Terminal-Typing-Test Typing test and practice on command line without the need of any internet connection About CLI based typing test and practice tha

Angad Deep Singh 3 Oct 19, 2022
pygame is a Free and Open Source python programming language library for making multimedia applications like games built on top of the excellent SDL library. C, Python, Native, OpenGL.

pygame is a Free and Open Source python programming language library for making multimedia applications like games built on top of the excellent SDL library. C, Python, Native, OpenGL.

pygame 5.6k Jan 01, 2023
Wordle for the terminal, writen in python

Wordle Wordle in the terminal, written in python Simply run bash run.sh in your terminal to run. This creates a virtual environment, installs the depe

Matthew Lidell 1 Feb 09, 2022
Turtle Road Crossing Game in Turtle(python module)

Turtle Road Crossing Game in Turtle(python module) In this project we have built a road crossin game in python with Object-Oriebted Programming. This

Jhenil Parihar 3 Jun 15, 2022
Chess game for 2 players with UI

2-D Chess for 2 players Overview This is a simple 2D Chess game for 2 players using pygame library. Requirements To be able to run this game, you must

7 Apr 06, 2022
Made with pygame. Multiplayer game using socket module and threading.

Rock Paper Scissor made with python-pygame. Poorly made, as a beginner in programming. Multiplayer with server code and client code provided.

AllenJo 1 Dec 29, 2021
Minecraft Bedrock Server Control GUI

A control dashboard to monitor and control your minecraft bedrock dedicated server through an easy user interface. Created by Nathan-Busse 13 January 2022 Made with Python 3.8

Nathan Busse 3 Dec 11, 2022
Minecraft clone using Python Ursina game engine!

Minecraft clone using Python Ursina game engine!

Taehee Lee 35 Jan 03, 2023
Ghdl-interactive-sim - Interactive GHDL simulation of a VHDL adder using Python, Cocotb, and pygame

GHDL Interactive Simulation This is an interactive test bench for a simple VHDL adder. It uses GHDL to elaborate/run the simulation. It is coded in Py

Chuck Benedict 2 Aug 11, 2022
A "finish the lyrics" game using Spotify, YouTube Transcript, and YouTube Search APIs, coupled with visual machine learning

Singify Introducing Singify, the party game! Challenge your friend to who knows songs better. Play random songs from your very own Spotify playlist an

Josh Wong 4 Nov 19, 2021
Brawl Stars v31.96 server emulator written in Python.

Brawl Stars v31 Brawl Stars v31.96 server emulator written in Python. Requirements: Python 3.7 or higher pymongo dnspython colorama MongoDB configurat

9 Nov 26, 2021
Logo hitting the corner == best feeling ever!

Bouncing DVD logo - Pygame A little ride back to the 90s. Ah good ol' time! Didn't we all wait for the logo to hit the corners? Best feeling ever!! I

Hoang Nguyen 3 May 25, 2022
Just a copied of flappy bird game made by Thuongton999

flappy-bird Just a copied of flappy bird game made by Thuongton999 Installation and Usage Using terminal (on Window) Make sure you installed Python an

ThuongTon 9 Aug 08, 2021
SelectionSortVisualization - This pygame project is helping you to understand the selection sorting algorithm

SelectionSortVisualization (If you have any comments or suggestion, please conta

Berkay IPEK 3 Feb 17, 2022
A launcher to launch games from Riot Games under Linux

rito-launcher A launcher to launch games from Riot Games under Linux Requirements: Python 3, with the following pip plugins: 'configparser, pathlib, w

6 Mar 07, 2022
An interactive pygame implementation of Conway's Game of Life

Game of Life An interactive pygame implementation of Conway's Game of Life Installation Clone the repo and navigate into it. git clone https://github.

Ethan 1 Dec 05, 2021