hytale-launcher: init at 2026.03.03-a4f6003#479368
Conversation
There was a problem hiding this comment.
At the end, please squash your commits for the package, you should have:
maintainers: add karol-brodahytale-launcher: init at 2026.01.12.e43ec47
Let's hope it will still work after the next update from upstream :)
Where did you get this source from? From https://hytale.com/download clicking on linux gives me a flatpak and not the zip. An update script that scrapes the website for the latest version would be nice.
@gepbird the launcher contacts https://launcher.hytale.com/version/release/launcher.json to fetch its updates, which could be used for an update script |
44d5f56 to
35ad3a0
Compare
|
btw if this wont get merged before the release you can just do this, this worked for me: maybe copy the file from this pr instead of from the gist idk |
|
Considering the Nix expression for the current release of the launcher, I'd merge this as it is now. I think a fair decision could be waiting out the remaining 6 hours, making sure the package can launch the game and then merge it. I don't want to delay it by waiting for the next release to check if auto update doesn't break the launcher as many of us are excited to play it :)
Alternatively if you're using flakes, this is also an option. |
|
nix-alien also works fine to launch the launcher currently and that method does not fail to auto-update |
|
yea waiting until release makes sense, ngl just so hyped to finally play this |
for the auto update i read some of the files that were generated in .local and searched .config a bit if it maybe set a config, because it was set by default for me, will look into it a bit later |
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
That seems like a cool tool, but I just tried it with and without nixGL and got a gray window at the end. The flatpak has worked for me without issues. |
This comment was marked as resolved.
This comment was marked as resolved.
Flake lock file updates:
• Updated input 'nixpkgs-patch-hytale-launcher':
'NixOS/nixpkgs#479368'
→ 'NixOS/nixpkgs#479368'
|
I don't know how much it will help, but I have asked on Twitter if they could add an option to download old builds. I imagine that would be the best case scenario for the problem! |
Flake lock file updates:
• Updated input 'dwm-gep':
'git+https://git.tchfoo.com/gepbird/dwm?ref=refs/heads/rice&rev=3fb1e6e5b6fdd9a9d9847addc02c21ff63d15ce5' (2026-03-01)
→ 'git+https://git.tchfoo.com/gepbird/dwm?ref=refs/heads/rice&rev=1a7240cf7658e06e99abc6ad8614b131ffde5bef' (2026-03-15)
• Updated input 'home-manager':
'github:nix-community/home-manager/4aeef1941f862fe3a70d1b8264b4e289358c2325' (2026-03-12)
→ 'github:nix-community/home-manager/9670de2921812bc4e0452f6e3efd8c859696c183' (2026-03-20)
• Updated input 'nix-index-database':
'github:nix-community/nix-index-database/1c1d8ea87b047788fd7567adf531418c5da321ec' (2026-03-08)
→ 'github:nix-community/nix-index-database/8faeb68130df077450451b6734a221ba0d6cde42' (2026-03-15)
• Updated input 'nixpkgs':
'github:NixOS/nixpkgs/62dc67aa6a52b4364dd75994ec00b51fbf474e50' (2026-03-10)
→ 'github:NixOS/nixpkgs/b40629efe5d6ec48dd1efba650c797ddbd39ace0' (2026-03-18)
• Updated input 'nixpkgs-patch-hytale-launcher':
'NixOS/nixpkgs#479368'
→ 'NixOS/nixpkgs#479368'
• Updated input 'nur':
'github:nix-community/NUR/1a4ca0d650fbfd4c58e1b1c2b153151fec77d6b2' (2026-03-12)
→ 'github:nix-community/NUR/2c357bd5d64ffcd4a33b4ff83b0ecf86f7ee871c' (2026-03-20)
• Updated input 'nvim-gep':
'git+https://git.tchfoo.com/gepbird/nvim?ref=refs/heads/main&rev=0d0f4c406770943dbdce12c1bc888a667fdbdc10' (2026-03-12)
→ 'git+https://git.tchfoo.com/gepbird/nvim?ref=refs/heads/main&rev=64e65cafabe9b2116b75f53aa5a345cd32e50b80' (2026-03-20)
• Updated input 'nvim-gep/neovim-nightly':
'github:nix-community/neovim-nightly-overlay/f165d4768ca760f4c98b63286562b6fa79a8b114' (2026-03-12)
→ 'github:nix-community/neovim-nightly-overlay/7e711c5abd3b0ca9c0038606edeee6bcf09b055c' (2026-03-20)
• Updated input 'nvim-gep/neovim-nightly/neovim-src':
'github:neovim/neovim/99a0b2f7b86d447af752ee7436dd5fd69fc6a101' (2026-03-11)
→ 'github:neovim/neovim/06befe1e348bf540bb04a8c0cafe116616e71715' (2026-03-19)
• Updated input 'sops-nix':
'github:Mic92/sops-nix/d1ff3b1034d5bab5d7d8086a7803c5a5968cd784' (2026-03-09)
→ 'github:Mic92/sops-nix/29b6519f3e0780452bca0ac0be4584f04ac16cc5' (2026-03-19)
It'd have to be impure. The best solution would be to do our best to ensure the package for Hytale launcher is robust enough that we can confidently automate updates when they appear via CI/CD, or have the Hytale devs keep direct URLs to older versions of the launcher still accessible after an update happens. I suppose the best way would be to automate downloading and unpacking the official Flatpak release, then just bumping the hash automatically whenever it changes and making use of the fact that Flatpaks have a standarized structure which should result in updates being smooth but like I mentioned earlier, this is still going to make every Nix build with older versions of Hytale always fail unless we either get a permission to redistribute the launcher binaries in the cache or get the devs to host old launcher builds. |
|
Hello! Apologies for the noise, but could someone rebase the PR again? It breaks since #494416 landed in |
Co-authored-by: Alice ✨🌙 Luna <alice@liquidnya.dev> Co-authored-by: Gutyina Gergő <gutyina.gergo.2@gmail.com>
8b791dc to
295d057
Compare
Flake lock file updates:
• Updated input 'nixpkgs-patch-hytale-launcher':
'NixOS/nixpkgs#479368'
→ 'NixOS/nixpkgs#479368'
Flake lock file updates:
• Updated input 'home-manager':
'github:nix-community/home-manager/1eb0549a1ab3fe3f5acf86668249be15fa0e64f7' (2026-03-24)
→ 'github:nix-community/home-manager/9340f51314713c83360bf72d75c8b404778ab5b1' (2026-03-30)
• Updated input 'nix-index-database':
'github:nix-community/nix-index-database/55b588747fa3d7fc351a11831c4b874dab992862' (2026-03-22)
→ 'github:nix-community/nix-index-database/bc13aeaed568be76eab84df88ff39261bb52ff70' (2026-03-29)
• Updated input 'nixpkgs':
'github:NixOS/nixpkgs/46db2e09e1d3f113a13c0d7b81e2f221c63b8ce9' (2026-03-24)
→ 'github:NixOS/nixpkgs/8110df5ad7abf5d4c0f6fb0f8f978390e77f9685' (2026-03-28)
• Updated input 'nixpkgs-patch-hytale-launcher':
'NixOS/nixpkgs#479368'
→ 'NixOS/nixpkgs#479368'
• Updated input 'nur':
'github:nix-community/NUR/d44823e10e2012d9a907d19163429121a544ec04' (2026-03-26)
→ 'github:nix-community/NUR/333d355904136c1ebb56e83c4b23464bd815653c' (2026-03-30)
• Updated input 'nvim-gep':
'git+https://git.tchfoo.com/gepbird/nvim?ref=refs/heads/main&rev=2733cb16dd436a542618964d0726d9f8afe3804e' (2026-03-24)
→ 'git+https://git.tchfoo.com/gepbird/nvim?ref=refs/heads/main&rev=1ade30a600ef0c1719c705c778e52f2937776a80' (2026-03-30)
• Updated input 'nvim-gep/neovim-nightly':
'github:nix-community/neovim-nightly-overlay/701c0a6174fde5de4b9424c0d1e5a4306b73baac' (2026-03-23)
→ 'github:nix-community/neovim-nightly-overlay/a49f9d17bcaa684b81fc4322fbcbfc3ba501d40e' (2026-03-30)
• Updated input 'nvim-gep/neovim-nightly/neovim-src':
'github:neovim/neovim/6cd1fe9a66947511f59226d51dd70197d80513e5' (2026-03-22)
→ 'github:neovim/neovim/ed822a085db0b6f4c682707be2c35a7acdca57b2' (2026-03-29)
• Updated input 'nvim-gep/nixvim':
'github:nix-community/nixvim/21ae25e13b01d3b4cdc750b5f9e7bad68b150c10' (2026-03-01)
→ 'github:nix-community/nixvim/cbd8536a05d1aae2593cb5c9ace1010c8c5845cb' (2026-03-29)
• Updated input 'sops-nix':
'github:Mic92/sops-nix/614e256310e0a4f8a9ccae3fa80c11844fba7042' (2026-03-23)
→ 'github:Mic92/sops-nix/8adb84861fe70e131d44e1e33c426a51e2e0bfa5' (2026-03-29)
|
Are we gonna get GTA 6 before hytale-launcher in nixpkgs? |
As far as a know/recall, the main blocker is that Hytale does not keep old versions of the launcher available when they release a new one. Because we are also not allowed to redistribute the launcher binary, this means that people with this package installed would not be able to update/install their systems when a new version is released until the update propagates through to their nixpkgs branch. They would be met with a HTML 404 error when nix tries to download the launcher from the hytale site. I'm no nixpkgs expert so I'm not sure if there is any way for us to release this package as it stands without frequently breaking people's systems, or allowing runtime downloads (not sure if these are allowed on nixpkgs, or would work considering the nix store is read only). Hytale could update the launcher multiple times in a week and this would leave people unable to update their systems (unless they remove the hytale-launcher package, which is inconvenient). So, as far as I see it, the main solutions are:
Options 1 & 2 would both have to be implemented together, or options 2 & 3 together. Someone let me know if any of this is incorrect, I didn't fancy going back through the 150 comments of this pull so I'm going off my memory, which is often flawed :). |
I like how you summarized the options 1, 2, and 3 to add more structure to this conversation. I want to add the following as well:
Option 4 could be implemented on its own. |
|
Regarding that older configs can not be rebuid easily: Recently I was rebuilding an old config of mine and it did fail to download the enpass package. This package has the I think this problem has any package that is licensed as So, I feel like ensuring that older builds do not fail for an |
While I agree, the hytale launcher updates so often (at least right now), that this becomes less of a "could" and more of a "will". That being said, this has absolutely turned into bikeshedding at this point. I still stand by the fact that a runtime download makes sense: If you have an outdated launcher version, it will/might not let you play either way. So that helps you exactly not at all with rolling back |
|
I agree runtime download makes the most sense, but wonder how that works in implementation. Would it download the launcher every time you run the run the desktop shortcut? I think the launcher is only about 20mb or something right, but how could it be cached with that strategy. Would it download it on launch only if it doesn't exist locally then let the launcher self update somehow after that without nix managing it? |
|
I can see the runtime method kind of working but not sure how it would accepted by committers as it's kind of against the point of nixpkgs. Its effectively what we already have. The current PR copies the latest version to I think the current method is functionally fine, if I'm understanding correctly all you need to do when the package is broken is go to https://launcher.hytale.com/version/release/launcher.json copy the version and the hash and put this in your config: hytale-launcher.overrides = {
version = 2026-04-23-xyz;
hytaleHashes.x86_64-linux = "sha256-abc...";
};The main issue is that the package will break like every 3-4 days so you would constantly need to update this manually unless you created your own local bash script which mirrors the update script here. We can see this from JPyke3's flake which implements a very similar solution to what we already have except it checks for an update every hour to ensure the flake still works whenever someone tries to use it. I think so long as the package description clearly states that the user will more than likely need to use the above snippet to get an initial install, it may be acceptable. Or a link to the nixpkgs wiki where this is explained more in-depth would be better.
It would be bikeshedding if we were talking about a trivial issue, we're not. We're talking about merging a package that would be functionally broken 90% of the time and require manual overrides to work :) |
|
I'm sorry if I come across as unconstructive or negative or whatever, but why would we even want a package for hytale in nixpkgs?
Yes, we do package minecraft servers, but their distribution model actually allows packaging (pinned) versions. So as long as hytale isn't doing that, why bother? |
|
I'd like to see hytale packaged even if it's just via a runtime download. It's the same that's done with steam and it still lets you somewhat declare what's on your system. If you have to imperatively install the flatpak there'll be components that aren't even named in the configuration file. |
FWIW you could use Details{ pkgs, lib, ... }:
{
services.flatpak.packages = lib.singleton rec {
appId = "com.hypixel.HytaleLauncher";
sha256 = "0ny8bqb0kklz1sg43ip45hhj2avai2zhdsiw244zk6qsfa2cnqj2";
bundle = toString (
pkgs.fetchurl {
url = "https://launcher.hytale.com/builds/release/linux/amd64/hytale-launcher-latest.flatpak";
inherit sha256;
}
);
};
}(for the record I haven't tested this but fairly certain it works however you'd have to update the hash now and again) Or, even simpler, just write a oneshot job for that: Details{ config, pkgs, ... }:
{
systemd.services.install-hytale-launcher = {
after = [ "network-online.target" ];
serviceConfig = {
Type = "oneshot";
PrivateTmp = true;
User = "flatpak";
};
path = [
config.services.flatpak.package
pkgs.coreutils
pkgs.curl
];
script = ''
if ! flatpak info com.hypixel.HytaleLauncher; then
tmp=`mktemp /tmp/XXXXX.flatpak`
curl -o $tmp https://launcher.hytale.com/builds/release/linux/amd64/hytale-launcher-latest.flatpak
flatpak install --noninteractive --bundle $tmp
fi
'';
};
}(again, untested) But you get the point, if your goal is "I want to declare Hytale somehow somewhere in |
|
Yes but that's a hassle and also another flake input. People who just moved to nixos don't want to have to figure out how to add another channel to their config or migrate to a flake right away just to play a game. For steam the same thing was done to remove friction. I'd argue the devices that run steam or hytale won:'t be the devices that need 100% reproducibility. |
|
I figured I pop my head back in this PR again as I was mentioned earlier. Let me preface this by saying I am more than happy to help contribute where it would be helpful, and I am not here to push an agenda.
Same reason as most other packages - convenience.
Not a bad idea, but last time I tried to run the flatpak (which I will admit is a while ago) I was not successful. IMO Flatpak seems to be more of stop gap measure than a complete solution when it comes to nix.
I'd actually argue this actually a good use case for nixpkgs. I agree with many people above that it is much more reproducible and true to nix to download the launcher at build time as a FOD. But due to how the Hytale launcher works, this approach requires frequent updates to the FOD hash. An independent repo with auto updates like what @JPyke3 did for his flake works well, but this is not feasible for nixpkgs. In this context, what nixpkgs is great for is convenience. I think it would be good to at least have the option of Yes downloading the launcher at runtime is a solution that has technical dept. But I would still argue that a working solution with technical dept is better than a perfect solution that doesn't work. Now what I would love to see the nix-hytale community focus on is the ability to set up a modded hytale server using a nix config/flake. Though that is probably out of scope for this discussion. So now that I've stepped in it, my ego has requested protection against another round of downvote-mageddon /s. Please emote 👍 if you think that |
This isn't a working solution though. I'm not sure how no-one else seems to see this. It is not suitable for merging in this state.
Quite frankly, people who have just moved to NixOS are not going to be able to use this package either. I'd argue that it's more of a hassle to have to figure out how to manually override the package version and compute the hash than it is to just see "there isn't a hytale-launcher package for NixOS. Guess I'll have to use the flatpak".
The main, and crucial, difference with Steam is that they keep older versions of the .deb available on their servers for quite a while after they update, allowing us to download an outdated version from them if needed. Steam is also redistributable, meaning we can cache the built derivation on Hydra and not have to worry about losing the upstream source. I'm sorry to just keep harping on about the same point but any hytale-launcher package is just going to be broken for the time being, until upstream allow redistribution or maintain older launcher versions on their servers. |



adds the official hytale launcher, a game launcher for hytale - an upcoming block-based game from hypixel studios.
the package fetches the prebuilt linux binary and patches it with autoPatchelfHook for nixos compatibility
Things done
passthru.tests.nixpkgs-reviewon this PR. See nixpkgs-review usage../result/bin/.Add a 👍 reaction to pull requests you find important.