Itch for Unreal Engine
A downloadable Unreal Engine 4 Plugin
Does your UE4 game require access to the itch.io server-side API to access player profile info? Well, so do our games, and there's a slight issue. Itch hasn't released an official UE4 plugin to interface with the API just yet.... so we're rolling our own and making it freely available so you don't have to.
What can it do?
Here's a few things this plugin will be able to do.
- OAuth-based login for game sessions not started through the itch desktop app, or for Play in Editor testing.
- Seamless login using itch app manifests and the itch desktop app.
- Proof of purchase for paid games that don't want multiplayer open to non-legitimate copies of the game
- "Offline mode" in case something goes wrong in the backend.
- Press Account support so you can do certain things for press users.
- Player Avatar UMG widget for displaying the player's itch avatar inside of UMG user interfaces.
- Extremely easy-to-use Blueprint function library that takes care of the heavy lifting for you.
Eventually, we plan to add support for butlerd, but that isn't super well-documented in the itch API reference (namely, starting butlerd programmatically) and the desktop app doesn't take care of that for us. So for now we're not doing that stuff. But if we did, we'd be able to pretty much let you do everything the itch app does but in-game.
How to use it
First, download the source code of this plugin from GitHub. (Note: You don't need to know how to code at all, we just need you to copy the plugin into your UE4 project).
The git repository for this plugin can be found here. In there, you'll find the test game that uses this plugin. Once you have it, simply navigate into the Plugins folder and copy the ItchForUnreal folder from there to the Plugins folder of your own Unreal Engine project and open up your project in Unreal.
From there you should be able to go to Edit -> Plugins in the Unreal Editor and see it as a project plugin. Make sure it's enabled and you're good to go.
Seamless Login support
To get the itch desktop app to give your game the API key necessary to perform Seamless Login, you need an itch manifest file in the same folder as your game's executable file (and not in a subfolder.) We can't automate the process of putting that file in there for you, so keep that in mind. All we can do is tell you what to put in that file.
So, when you go to release your game, package it normally like you would any Unreal game. After that's done, navigate to the folder where Unreal dumped your game. Then, when you see your game's executable file, create a new file in the same folder called .itch.toml.
Inside, place the following code:
[[actions]] name = "play" path = "MyGame.exe" scope = "profile:me"
That tells the itch desktop app to launch "MyGame.exe" when the user clicks the "Play" button, and to give the game access to the player's itch profile. Be sure to change the path value based on the name of your game's executable/binary/whatever macOS calls it.
In an ideal world, we'd support every platform that Unreal does. However, because itch uses environment variables for Seamless Login, we can only support platforms where reading environment variables is even possible in Unreal, and only platforms we are capable of testing.
Linux support is planned, macOS support will come if you can buy us a Mac, and Windows is already going to be supported out of the box.