Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics


A member registered Jun 26, 2014 · View creator page →

Creator of

Recent community posts


Hey, thanks for the report!

I'm pushing a fix now - no app upgrade needed, it's just an underlying component.


Hi there, sorry for the late response.

I've investigated and it looks like lsddev's games are using rar v5, which we don't support at the moment. I've left a note to the developer here:


It seems like at least two (The Sun and The World) of your games currently use .rar archives. As a result, they don't work in currently.

Here's what you can do:

  • Use to re-upload builds.
    • You don't need to make an archive first, just push the folders directly.
  • If you try butler and it's just not for you, you can always make a .zip file instead, and upload that.
  • In case you used .rar because of file sizes, I just lifted the upload limit on your account, so it should work even for The World (which is bigger).

Feel free to archive this thread once this is resolved!


You're doing okay! It's a pretty hard game. Here's some advice:

  • At the start of the game, avoid playing anything above a 4 - the enemy will immediately be able to take out your 5 with their 3, your 6 with their 2, etc.
  • You can "gain some time" by first playing a 4, then playing your 3 to take back the 4, then playing your 2 to take back the 3, etc. - try to bait the enemy into playing one of their high cards, and then eliminate it with one of your low cards!
  • A 4-4 trade is another way to gain time - if the enemy has placed their 3 and 1 in the same row/column, using your 4 to discard them is a good move - it makes your 5 and 7 relatively safe for the late game. Even playing your 4 to eliminate the enemy 4 can be smart - it forces the enemy to do something else (which you can react to), and clears the board for later trades.
  • Pay attention to what's in the enemy deck - even in the late game, if the enemy still has their 3, prefer placing your 6 than your 5.
  • Pay attention to the enemy moves. Sometimes it'll set up an exchange by moving your card up or down a row - it only does that if it knows it can make a good trade next turn.
  • The game looks innocent, but it requires a cool head. Play along with your morning coffee/tea, not late at night. Hasty play is sloppy play!
  • A draw is still good in my book! If the computer doesn't make any early game mistakes, it can be very hard to force a win. Even experienced players struggle to win more than half the time.

Hope you manage your first win soon :)


I agree the captcha is not ideal, we're looking into other solutions.

Here are tips to avoid it:

Admin (1 edit)

A quick workaround: start the tutorial and exit out to the main menu - you don't actually have to complete it for `Play` to unlock.

I made it mandatory because the last time I made a card game for Ludum Dare, *everybody* was confused about the rules. I might change it to "Are you *sure* you want to skip the tutorial?" prompt at some point.

edit: I just made some changes to address that. New game is no longer disabled, but if you click it, it'll recommend you do the tutorial - you can opt to click 'cancel' from there and go straight to a regular game. Hopefully this achieves both goals!


Fwiw I designed the game and the AI still beats me 2/3 times :(


Sorry about that! I was using one function slightly wrong, it's all fixed now!



The best way to release a game for the app is to make it self-contained, like you said.

InnoSetup is supported, but not discouraged, see

Apps are installed in whatever install location is specified by the user - by default, in `%APPDATA%/itch/apps`, but they can specify another drive, etc.

As for shortcuts, the feature is planned:

When folks download directly from the website, they just get a .zip file with your self-contained game inside. We're going to be pushing the app more in the future, we already recommend it in support whenever folks can't figure out how to extract a .zip!

Don't forget to upload with for many benefits listed on that page.

Hope this addresses your concerns!


Seconded. Oof!


I replied to your support e-mail.


It hasn't yet! Still on my radar, but I have to work on thing other than the app these weeks.

short of creating a whole new "unreleased" project just for testing

That's probably the best way to do it right now!


Thanks a lot for the update, it's always good to hear back!


They are cached for 30 min right now:

I wouldn't expect the app to break if a collection disappears though, I'll definitely have to test for that.

downloading a random binary that creates random files in ~ is pretty 1990's

The idea may be old, and yet the execution is definitely modern!

itch-setup is not a self-extracting file, it validates the version folder, comparing it against a signature, healing files that are missing.

For initial install, all files are missing, so it extracts them all (it does so without storing the archive itself on disk - extraction is done on-the-fly, while it's being downloaded). For corrupted installations, it just repairs the files that need to be repaired. For upgrades, it applies optimized patches (the same software is used both for installation and updates).

Also, it's all open-source (see Github repo), and the same codebase runs on Windows, Linux, and macOS - except for the interface, which is native to each OS, of course. On top of that, it allows the app to self-update seamlessly on all three platforms.

I've wrestled with distro-specific packages (and even new, "self-contained", "sandboxed" formats like AppImage, Flatpak, Snap) before, but at that time we don't have the resources to support it. Investing a few months of part-time work on our own unified setup solution is already a small miracle in itself :)

If we end up shipping a Flatpak or Snap, it'll be for itch-setup, which will in turn install the itch app. It's not in my TODO list for the immediate future though!


itch v25.3.0 is out, if you run ~/.itch/itch-setup again it should upgrade to it, and then it should launch fine!


Yeah, AppImage uploads were fixed quite recently! Here's the relevant commit. (Uploads were already working as intended, but self-contained Linux binaries weren't working properly - it's a pretty rare case so it slipped through the tracks of initial testing).


Happy to hear! Thanks for reporting back.



  • I've adjusted the docs to mention that you might have to create `~/.bash_profile` if it doesn't exist
  • I've added the auto-wrapping behavior I've mentioned before.

What that means is that, as of butler v14.3.0, if you push an app bundle directly, it'll push this:

The old behavior is still available under the `--no-auto-wrap` flag:

If you downloaded butler directly, you can run `butler upgrade`. If you installed it via the app, it'll update it automatically.



macOS is a bit peculiar. Applications are in `` folders. There's nothing special about these folders, except they need to have a specific structure (with a `Contents` subfolder, an `Info.plist` file, etc.)

butler lets you upload the contents of a folder as an upload, and then the app installs that into an install location. The problem you're seeing here is that:

  • butler push somewhere
    • Uploads *the contents of*
  • Installing that upload
    • Installs *the contents of* to a location like `~/Games/foo-bar` - a folder that doesn't end in `.app`
    • that's not an app bundle as far as macOS is concerned
  • .app bundles contain executables, which can be executed normally...

Here's how you can work around it right now:

  • Instead of doing butler push somewhere, create a folder named foobar, put the .app in it, and push that foobar folder.

Here's what I'm planning to do to make sure that problem doesn't happen again:

  • Whenever a folder that ends in `.app` is passed to butler, act as if it was wrapped in another folder already.
  • Fix issue 2131 mentioned above, so that even if isn't pushed "correctly", it will still launch with the app.

As for ~/.bash_history not already existing on your machine, that's expected behavior if you're on a fresh macOS install / haven't used the command-line there in a while. I think that:

  • The docs should mention that you may need to create that file
  • We should release a drag & drop graphical interface for butler soon, which will avoid a lot of confusion

Hopefully that addresses your questions!


Ah, I see the confusion. You actually need to install it! (big red button, bottom-right)


This game contains files compressed with the proprietary Deflate64 algorithm. This is not supported by the itch app at this time.

I recommend that the developer recompresses the game without Deflate64, or even better, uses to upload it.

Admin (1 edit)

First off, please make sure you have the latest version of the app: you can download v25 from here:

If that doesn't fix it, can you add more details? Like:

  • Which OS are you running the app on? (Windows, Linux, macOS)
  • Which games aren't working for you?

(WebGL games  are definitely supposed to work fine in the app.)

Just to prove that I'm not straight up lying, here's a WebGL game running in the app:

Admin (1 edit)

v23 kept information about "installed games" in another location, in a different format.

v25 attempts to scan that, and update the information from the API. If the game can't be found, or the upload is gone - it won't show up in your library again.

I know that's unfortunate, and it's also why v25 stores install information directly in the installed game's folder. That way you can move around your games, reinstall your OS, change computers entirely, and import them afterwards with no problem.

edit: If you navigate to your install location from within the app, and use the "Scan locations for games", button on top you'll:

  • See which games it finds
  • If it doesn't find anything, you'll be able to see a journal of what it tried to import

I see you're using Windows 7 - how many cores do your CPU have?


I've opened an issue at to get to the bottom of this. Please also reply there with all the info requested.


Hi, thanks for the report.

I've opened an issue at to get to the bottom of this. Please reply there with all the info requested.

So itch-setup just checks for client updates which is fine, but what if Butler can't connect on launch? Will it try again when it's needed or will it give an error? Gonna wait a see what it does at the next update so no need to worry about this one for now I guess.

I would expect an "ask questions first, shoot later" Firewall to make the connection attempt "hang" until you've decided what to do with it. If that's what it does, then it should work fine.

If it doesn't, then.. you'll probably see the same thing you would if the API key was revoked or if you used a wrong password, so you'd have to switch back to saved logins and use again. I could maybe implement some retry logic if I knew what error we got when the firewall blocks the connection attempt!


4) the Java filter is for Java applets, I think it should be removed as those have fallen out of favor

I'd recommend always bundling a JRE into your game, to be on the safe side.


> both butler and itch-setup try to connect

Here's what they both do:

  • butler starts an http server that's only available locally (on the loopback interface) - the itch app then connects it to it to make RPC (remote procedure calls)
  • butler handles all API calls, so it does need to connect to the server. It also handles all downloads, so it'll connect to our CDN, or to wherever the game is hosted
  • itch-setup also contacts a server of ours, , to make sure you have the latest itch app version, and to download any updates.

About saved logins: when a log-in fails, the app shows the username/password form, assuming that the API key was revoked (if it was a saved login), or that the username/password was wrong (if it was a username/password login). It copies the username so it gives you a chance to enter the correct password again. However, the saved logins are not lost.  You can still click "Saved logins" and see the list:

Re shortcuts in the sidebar: icon versions could work! I've opened an issue to track that:

I'm hesitant to change Downloads/Preferences to open in tabs instead, because I'm not sure what would happen if you disabled tabs then? Technically both of these are implemented as "tab contents", they just don't show an address bar, but that also means you wouldn't be able to navigate away from them without clicking on a shortcut. I'll keep thinking about it.

I'm glad the tray icon works for you now! And it's possible that Windows 7 has different scroll/select behavior. Are you seeing the same in other applications?

but I did notice that you've went back to "version naming" the install folder.
Is this meant to make updates more stable so they don't cause problems like failed overrides or leftover old files or just some way of keeping track of the versioning outside of the .EXE's version meta data or is this just some temporary way of keeping these "Beta tested" versions separated to see if they work properly?

I'm assuming you're talking about this folder:

The goal is indeed to keep versioning info outside of the .exe files. (you can see the source code here)

Another goal is to only switch to a higher version if it runs properly - so we don't accidentally break your app if we release a bad build of butler for example. Or, we don't break your app if your Antivirus decides it doesn't like the new butler release, for example.

You mention that your Antivirus keeps getting in the way after every upgrade (of butler, I'm assuming?) - that's precisely what this system is designed to prevent, so, please open a detailed issue at with exactly what happens. You mention the login failing - what's the error message? Which Antivirus are you using? Does your antivirus pop up a "Scanning.." notification? etc.

Note that v23 was strictly worse in that sense - it always replaced its dependencies' executables without checking that they worked first. So the Antivirus behavior should be equivalent at worst - AV software don't care about paths, they care about file signatures.

(Actually, I'm noticing now you mentioned your "firewall", not your antivirus. The same applies though. I personally think that a firewall blocking all outbound connection attempts is a bit overzealous, but hey, your computer your rules - I think it should be possible in this case to add an exception for the "broth" folder wholesale though. All the same, please open an issue *just for that* with details so we can figure out an action plan)

is there a reason why allowing tabs removes the "shortcuts" at the top? Is it just about not having enough space to keep them all there or does it actually make the code that much simpler?

It's about space, not code:

Also: what would the shortcuts do: always open in a new tab? Then you'd end up with N copies of the Library open. Or should they try to switch to an existing tab if it has the same base url? (itch://library, itch://collections, etc.). Or would they just open in the current tab? Actually, that could work.

I'd be more inclined to short shortcuts while tabs are enabled if tabs were moved to the top of the screen (a-la chrome, firefox etc.). We might want to make the user menu narrower and move the "New version available" to some sort of notification system. tl;dr it's about design, I'll bring it up internally.

My first problem might be something that can't be fixes since it's probably tied to the browser code base that's used(probably Chromium since that's what does this), but I generally scroll pages by holding down my scroll button and just drag it around, but that starts highlighting everything that I'm passing by.

Is there a way to disable this behavior or do we need to just get used to it?

I'm confused, because I'm not seeing the same behavior here! (Win10, Logitech MX Master 2S)

My final problem is again just a personal preference, but when I close the client the only options I have is to shut it down so that I have to start it up again to use or to just keep it minimized on the taskbar. The old client kept running in the background as well, but it "hid itself" in the right side menu like a background process just like Steam.

Is this a limitation of the new system or was it just decided that that's what it should do?

Again, I'm not sure why you're seeing this. The app definitely closes to tray and opens back up immediately for me:


Yes! The witch is back, long live the witch!

Perhaps it's because they had different folder/file names?

Yes, that would be a known v23 issue:

itch v23 handles properly a chain of builds pushed with butler - old files are cleaned between upgrades, even if the game is shipped in subfolders that include the version number (a strategy we don't recommend, and that makes patching more expensive for no good reason).

However, when switching between uploads (not builds), itch wouldn't clean files from the previous upload that aren't in the new upload - the result is several copies of the game in the install folder, and there's a good chance it would launch an older version rather than the latest.

(If you're wondering how that bug slipped into a stable version of itch: it's a pretty rare scenario. Usually games are shipped without folders-with-version-numbers, which works fine (the newer files replace the older files). Also, usually wharf uploads stay up, and just get updated normally).

I'm happy to report that this won't be an issue anymore as of v25 - all the installing & upgrading logic has been rewritten from scratch, with better testing, and it cleans up in all possible cases. It's also stricter in what it considers an upgrade.

itch v25 is slated for release in the next few weeks, you can already test the beta here if you want: - it's at a point where it's usually more stable than v23. You can check out the complete roadmap here:

v25 has been in the works for about a year now. I'm really looking forward to leaving v23's bugs behind.

I'll be looking forward to the public status page so that we can know if errors are happening on our end or not before a release, thank you.

I've deployed a status page here for the time being:


Hey there,

I've looked up the build history for both projects, and both have a build pushed about a day ago that processed normally. However...

For the non-premium version, I'm seeing a lot of uploads, most of which are set to hidden.

Here's what I think is happening:

  • You're pushing to win-linux and mac, the builds are processed properly and updated
  • However, they're hidden/prevented from being downloaded, so the app only sees the web uploads you made (TTEoTS-v1.3.0828)
  • It might be working for your teammate if they're using the app from the aeondreamstudios account, or an account that's a game admin for the page, in which case hidden uploads aren't hidden for them.

I would recommend un-hiding the butler uploads and deleting everything else.

I would also like to apologize for the recent outages to butler's backend - there's been two this week, and we're taking this seriously. We've already improved monitoring internally and fixed some issues that resulted in those outages, and we are planning on rolling out a public status page to give more visibility into the system from the outside.


No idea, sorry. I'd suggest checking


Hey there,

Does that work for you?

You're right, I doubt passing ITCHIO_GAME_PID would be general enough to be justifiable, and implementing the Presence API ourselves would be a good idea. Feel free to open an issue at


Yeah.. some bugs are sneaky like that. Thanks for reporting back!


Do you have any more details? A screenshot? An error message?


It seems to work fine in the beta:

Can you confirm it does for you too?

You can download the beta here: