{"id":14967957,"url":"https://github.com/cloudyluna/cdda-custom-experimental","last_synced_at":"2025-10-25T21:32:33.272Z","repository":{"id":246214303,"uuid":"820432598","full_name":"cloudyluna/cdda-custom-experimental","owner":"cloudyluna","description":"My nix flake to install \u0026 run pre-built Cataclysm: Dark-Days-Ahead experimental from CDDA repo.","archived":true,"fork":false,"pushed_at":"2024-11-24T04:58:35.000Z","size":147,"stargazers_count":1,"open_issues_count":13,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-17T14:11:31.491Z","etag":null,"topics":["cataclysm-dda","cdda","nix","nix-flake","nixos"],"latest_commit_sha":null,"homepage":"","language":"Nix","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cloudyluna.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":"2024-06-26T13:05:05.000Z","updated_at":"2024-11-24T05:00:47.000Z","dependencies_parsed_at":"2024-06-26T16:09:39.645Z","dependency_job_id":"7b26c47d-f227-46eb-a182-b420f35f3d51","html_url":"https://github.com/cloudyluna/cdda-custom-experimental","commit_stats":{"total_commits":48,"total_committers":1,"mean_commits":48.0,"dds":0.0,"last_synced_commit":"e4282fc553ac33b333171c5a2eff4b78aff49457"},"previous_names":["cloudyluna/cdda-experimental-git-flake","cloudyluna/cdda-custom-experimental"],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudyluna%2Fcdda-custom-experimental","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudyluna%2Fcdda-custom-experimental/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudyluna%2Fcdda-custom-experimental/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudyluna%2Fcdda-custom-experimental/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cloudyluna","download_url":"https://codeload.github.com/cloudyluna/cdda-custom-experimental/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238018670,"owners_count":19402757,"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":["cataclysm-dda","cdda","nix","nix-flake","nixos"],"created_at":"2024-09-24T13:38:59.837Z","updated_at":"2025-10-25T21:32:32.912Z","avatar_url":"https://github.com/cloudyluna.png","language":"Nix","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Archived\n\nThis project has now been archived. While updating the plain game is fine, getting the mods to ensure it works with the base game is painful (which was one of the biggest reasons I made this flake). Chasing and bugging mod devs to update their voluntarily-made projects to be compatible with the rapidly changing base (experimental) game is not ideal.\n\nIf you end up here looking to run a CDDA experimental on NixOS, try [FHSEnv](https://ryantm.github.io/nixpkgs/builders/special/fhs-environments/) instead. It's more flexible although you're on your own when it comes to reproducing a working game environment.\n\nGood luck!\n\n# CDDA Custom Experimental\n\n🐈🐈🐈\n\nThis is my personal nix flake to run the automatically (experimental) built \nCDDA game from CDDA's GitHub repo. The executable artifact is fetched from \ntheir Github's Action CI system.\n\nMy biggest primary motives for this flake are to:\n\n1. Play the somewhat, recently released, experimental game version, without \nfirst building it from source which could take a lot of resources and time on\nmy NixOS computer.\n\n2. Reproduce any possible configurations from system level dependencies (SDL2 \nand other required runtimes) along with CDDA's specific dependencies that \ndidn't come by default including extra mods, sound packs or customized game \nconfigurations.\n\n3. Make this flake available for my private CDDA modding project which uses nix. \nSee [development](#development).\n\n4. Learn `nix`, `nix flake` and `NixOS` by developing this flake. What's better \nway to learn a new technology than to use it for something immediately useful \nfor my own personal use?\n\nFor completion, please see [what this project is not](#what-this-project-is-not).\n\n\u003e NOTE: This is only tested on NixOS. You may need [nixGL](https://github.com/nix-community/nixGL) if\nyou are running `nix` on other Linux distribution.\n\n## Table of Contents\n- [Description](#cdda-custom-experimental)\n- [Installation](#installation)\n  - [Remotely](#remotely)\n  - [Locally](#locally)\n  - [Run remotely](#run-remotely)\n- [Flake configuration version](#flake-configuration-version)\n- [Flake outputs](#flake-outputs)\n  - [default](#default)\n    - [Current game type used](#current-game-type-used)\n      - [Exposed executables](#exposed-executables)\n    - [I want to play the very latest version!](#i-want-to-play-the-very-latest-version)\n  - [extras](#extras)\n    - [Included mods](#included-mods)\n    - [Included tilesets](#included-tilesets)\n    - [I want more cool mods or sound packs!](#i-want-more-cool-mods-or-sound-packs)\n  - [extras-expanded](#extras-expanded)\n    - [Included sound packs](#included-sound-packs)\n  - [development](#development)\n    - [Included tools](#included-tools)\n    - [devShells usage example](#devshells-usage-example)\n- [Default user directory](#default-user-directory)\n- [Developing this flake](#developing-this-flake)\n- [What this project is not](#what-this-project-is-not)\n- [See more](#see-more)\n\n## Installation\n\n### Remotely\n\n- `nix profile install --refresh github:cloudyluna/cdda-custom-experimental#extras`\n\n### Locally\n- `nix profile install --refresh .#extras`\n\nOnce it is installed, run `cdda-tiles-launcher` and enjoy the game!\n\n### Run remotely\n\n- `nix run --refresh github:cloudyluna/cdda-custom-experimental#extras`\n\n## Flake configuration version\n0.8.0\n\n## Flake Outputs\n\nThese are the available outputs provided by this project. In general, all the \nexecutables and scripts exposed by this flake should *work without major crashes*. \n\nDue to the experimental nature of the used edition of the game (bugs are to be \nexpected), this flake provided game will seldom be updated for a while \n(weeks or even months). I will personally test the game and the included extra \nstuff for stability purposes.\n\nTo use run or build these outputs, append `#OUTPUT_NAME` to the `nix build` \nor `nix run` remote URL or local path.\n\nExample: \n  - Remotely: `nix run --refresh github:cloudyluna/cdda-custom-experimental#extras`\n  - Locally: `nix run --refresh .#extras`\n\n\n### default\n\nThe base and the primary CDDA game version used throughout in other outputs \n(except for [***development***](#development)). You can see the list of \npre-built executables from [here](https://github.com/CleverRaven/Cataclysm-DDA/releases).\n\n#### Current game type used\n- Edition: Native GUI (tiles) bundled with CC-Sounds sound pack.\n  \u003e Note: If CC-Sounds is not enabled by default, you can enable it manually in your game settings! (Options \u003e General \u003e Soundpack)\n- **Version**: 2024-11-08-2048\n- **Supported architecture**: x86_64-linux\n- [Release page](https://github.com/CleverRaven/Cataclysm-DDA/releases/tag/cdda-experimental-2024-11-08-2048)\n- [Full changelog since 2024-11-03-0625](https://github.com/CleverRaven/Cataclysm-DDA/compare/cdda-experimental-2024-11-03-0625...cdda-experimental-2024-11-08-2048)\n\n#### Exposed executables:\n  - `cdda-tiles-launcher` - ***Most user should use this.*** A shell script to \n  launch cataclysm-tiles with the user directory located in custom location. \n  See [Default user directory](#default-user-directory) for further information.\n\n  - `catacylsm-tiles` - The invoked game binary. Call this manually \n  (with `--help` for info) if you want more control.\n\n\n#### I want to play the very latest version!\n\nYou can manually update the game type (versions, editions, etc) by changing \nthe values within [modules/cdda-game-settings.nix](/modules/cdda-game-settings.nix) \nfile to your liking, locally. There are some comments left in there to explain \nwhat the keys and values mean.\n\n\u003e Note: Remember to run `nix build .#` once you finished changing the values.\n\n\n### extras\nThis one is a combination of [default output](#default) + with some mods \nbundled which I consider to be \"must have\", that I personally prefer to have \nwhile playing the game.\n\n\u003e NOTE: Remember to enable them in your world creation menu by pressing 'm' button and select your mod of choice in the world creation screen.\n\n#### Included mods\n- [Tankmod Revived](https://github.com/chaosvolt/cdda-tankmod-revived-mod/tree/5b1ea6a16f9cbdde3ce8b5dd01d1704cf8625c61)\n   - M1 Abrams, electric powered mini tank, etc. \n   I love battle tanks in this game!\n\n- [Minimods](https://github.com/John-Candlebury/CDDA-Minimods/tree/b039afd3007b083d191f4bf63d35f9b28896d8e4)\n  - Included submods:\n    - ***No Rust*** because I don't want character skills to decay at all.\n    Enable this in your mod balance's sub-tab menu.\n    - ***No Portal Storms*** in case if I reallly, reaaaaallly don't want portal\n    storms to appear at all 🫠.\n\n- [Jackledead Armory](https://github.com/jackledead/jackledead_armory/tree/ddb48de223839f7b61390d4e58fa506878624a30)\n  - More cool weapons!!!\n  - Only additional items mod are added which doesn't include the world\n  content expansion submod. See [modules/cdda-extras.nix](/modules/cdda-extras.nix) if you want to add.\n\n#### Included tilesets\n- [UndeadPeopleTileset](https://github.com/Theawesomeboophis/UndeadPeopleTileset/tree/65a9f538897643c084c93133861eb13e26d47db8)\n  - Really good looking tileset/gfx and I personally favor it for most of \n  my runs.\n  - Somewhat sizable in download size (20Mb ish) and still small enough. \n  Worth it 🐈! \n  \n\n\n#### I want more cool mods or sound packs!\nYou can add more mods or sound packs within \n[/modules/cdda-extras.nix](/modules/cdda-extras.nix) file.\nThere are comments and real usage examples in it to guide you on how to do this.\n\n\u003e Note: Remember to run `nix build .#extras` once you finished changing the values.\n\nIt is also possible to copy your preferred sound pack directory into the `sound`\ndirectory within `$HOME/.cdda-custom-experimental` or into wherever else your\nuser directory location is. By default, this will be in \n`$HOME/.cdda-custom-experimental/sound`. \n\nYou don't need to run `nix build` for this but be warned this is not\nreproducible with nix if you switch your computer in the future unlike updating\nthe `cdda-extras.nix` above.\n\n\n### extras-expanded\n\nAs the title says, this output is expanded on top of [extras](#extras) and it \ninherits every mods, sound packs and tilesets from it. \n\n\u003e Note: It is expected for this output installation to take longer time and probably will consume more system resources to complete.\n\n\nTo add more contents\nspecific for this output, see \n[modules/cdda-extras-expanded.nix](/modules/cdda-extras-expanded.nix).\n\n#### Included sound packs\n\n- [Otopack's](https://github.com/Kenan2000/Otopack-Mods-Updates/tree/419e3dbacb3f84ae121e12b0d148985a415b19f0)\n  - *The soundpack* that I prefer by default, which sounds fantastic. \n  I excluded this from [extras](#extras) due to the large, archive download \n  size (500MB+).\n\n### development\n\nWhy this exists? I also use this flake as a development input for my private\nCDDA modding projects which I integrate with nix flake for \nreproducibility purposes (used in devshells).\n\n\u003e Note: This output is a special exception where it doesn't bundle CDDA game\nand data contents.\n\n#### Included tools\n- `cdda-tiles-launcher-development` - A script similar to regular `cdda-tiles-launcher`\nbut it also copies \u0026 points to the content (mod, gfx, sound, doc, etc) into `$HOME/.cdda-custom-experimental-development/content` by default on first launch. \n  - This allows user to change \u0026 update contents without first requiring to manually\n  edit the cdda-custom-experimental Nix flake files like in traditional Linux system.\n- `json_formatter.cgi` - Format mods JSON file according to CDDA's \nmaintainer preferred style.\n\n#### devShells usage example\n*flake.nix*\n```nix{\n  description = ''\n    My flake for developing a cute CDDA mod!\n    '';\n\n  inputs = {\n    nixpkgs.url                  = \"github:NixOS/nixpkgs/nixos-unstable\";\n    flake-utils.url              = \"github:numtide/flake-utils\";\n    cdda-custom-experimental.url = \"github:cloudyluna/cdda-custom-experimental\";\n  };\n  \n  outputs = { self, nixpkgs, flake-utils, cdda-custom-experimental, ... }:\n    flake-utils.lib.eachDefaultSystem (system:\n      let\n        pkgs = import nixpkgs {\n          inherit system;\n        };\n      in\n        {\n          devShells.default = with pkgs; mkShell {\n            buildInputs = [\n              gnumake\n              dhall\n              dhall-json\n              dhall-lsp-server\n\n              # Exposes cdda-tiles-launcher \u0026 cataclysm-tiles to the env.\n              cdda-custom-experimental.packages.${system}.extras\n\n              # Exposes json_formatter.cgi to the env.\n              cdda-custom-experimental.packages.${system}.development\n            ];\n          };\n          \n        }\n    );\n}\n```\n\n## Default user directory\n\n`cdda-tiles-launcher` will use `$HOME/.cdda-custom-experimental` directory by\n***default***.\nTo override this to any directory you like, append the path of the\nlocation by the end of command call.\n\nExample: `cdda-tiles-launcher ~/cdda_cat_development`.\n\n\n## Developing this flake\n\nFor convenience, I've included a simple `devShell` to be used with `nix develop`\nor `direnv` to get the tools you need to make updating this flake slightly \neasier.\n\nFirst, from within this repository, run `nix develop` or `direnv allow` \n(if you have nix-direnv enabled) and let it load the environment for you.\n\nThen, you can use `make` to do most common things. You can change the target\nby appending `TARGET=PATH#OUTPUT_NAME`.\n\n- `make build` - Build the flake output.\n- `make` - alias to `make build`.\n- `make check` - Check if the flake files are syntactically correct.\n- `make format` - Format (in-place) all the .nix files in the repository.\n\nExample: `make build TARGET=.#extras`\n\n## What this project is not\n\nAs this project and flake is mostly for my own use, this project aren't intended\nfor and is not:\n\n- A CDDA game launcher/manager for `nix` systems. That is a large scope on its \nown and I don't have the energy to develop this into something like that.\n\n- A very robust and flexible nix configuration for many different use cases. \nThis project purposes are only for as the ones described in \n[description](#cdda-custom-experimental) section.\n\n- To be a derivation of the [cdda-experimental-git](https://search.nixos.org/packages?channel=24.05\u0026show=cataclysm-dda-git\u0026from=0\u0026size=50\u0026sort=relevance\u0026type=packages\u0026query=cataclysm) \nfrom official nixpkgs repo, which means that I would need to build this from \nsource if the one in the repo aren't up to date as I want to.\n\n\nAlso, I wish to keep this flake pure (not depending on dynamic, runtime values),\nso new updates will reflect this decision. Though this might change if this nix \nflake feature [will get implemented](https://github.com/NixOS/nix/issues/5663) \nor if there are better ways to do this without significantly sacrificing \nreproducibility aspect of this flake.\n\n## See More\n- [The Nix Book](https://nix.dev/)\n- [nix language tour, the one that started my nix lang learning journey](https://nixcloud.io/tour/?id=introduction/nix)\n- https://nixos-and-flakes.thiscute.world/\n- https://noogle.dev/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloudyluna%2Fcdda-custom-experimental","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcloudyluna%2Fcdda-custom-experimental","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloudyluna%2Fcdda-custom-experimental/lists"}