Skip to content

Helper script to make installing Palia in Steam easy on Linux and SteamDeck

Notifications You must be signed in to change notification settings

t3nk3y/palia_steam_helper

Repository files navigation

Contributors Forks Stargazers Issues


Palia Steam Helper

Let's make it easy to play Palia on the Steam Deck(and Linux) Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Roadmap
  4. Contributing
  5. License
  6. Contact

Looking to install on MacOS(Apple Silicon)? Check out Dan Mossa's paliaOnMac!

About The Project

Palia Steam Helper is a set of scripts designed to make it as easy as possible to get Palia running on the Steam Deck and Linux.

Why do we need to make it easier? Well, as of the creation of this project, Palia is currently in Beta, and only officially available for Windows. However, thanks to the hard work over many years of the Wine and Proton teams, we can still get Palia running on systems that run Linux OS, the Steam Deck is one such system. Unfortunately, getting games running through Wine/Proton can be a challenge, and getting that working on the Steam Deck and running in Game Mode is a whole extra challenge.

But don't worry, "we got ya fam"(I think thats what the kids are saying these days).

Just head down below, and follow the steps to get playing.

(back to top)

Getting Started

Installation

  1. Decide where on your system you want to install the game to. You will need around 20GB free. It can be installed anywhere, including an SD card. We recommend you create a folder somewhere, called Palia.
    Example: /home/deck/Games/Palia
  2. Right click this desktop installer file, left click save as, and place the file in the folder you want Palia installed to.
  3. Double click the file you downloaded, to start the setup.
    If a window opens asking What do you wish to do with this file?, just click Execute
  4. Click through the prompts till setup is complete.
  5. Head back to Gaming Mode(on the SteamDeck) or Steam, and you should see Palia in your list of games, complete with an icon and graphics.
  6. Launch the game to start the Palia Launcher, which will download all of the game data for you.
    Note: the official Launcher/Installer is glitch on non-Windows systems, and will likely flash it's text at you a lot, and will take a long time to download due to the size of the game.
Alternatively, you can use the one line terminal command.
*Required if you are on a device that doesn't support .Desktop files*

One line terminal command:

  1. Open a terminal in the path you want the game installed to, paste the command below in to a terminal, and execute it.

    (You don't need to download anything from this Github page, the below command will do that for you.)

    curl -L https://raw.githubusercontent.com/t3nk3y/palia_steam_helper/main/install_palia.sh | bash

How to update the script when it changes

  1. Updating is simple, just run the install_or_update_palia_steam_helper file in the same folder you installed to, again. Or run the one line terminal command if you prefer to use the terminal.
  2. This will download the script updates, and let you know it's been updated.
palia-steam-helper.mp4

(back to top)

Roadmap

  • Single, simple, pasteable command to perform the setup process.
  • Single script to add to Steam with very minor user intervention required.
  • Only use tools that come with the Steam Runtime environment.
  • Automatically prepare game requirements in the Wine/Proton environment.
  • Provide a GUI to show install progress.
  • Skip EULA screen to workaround extremely glitchy issues when accepting EULA.
  • GUI screen to tell user they must agree to the EULA and TOS if they use the script.
  • Install all game files to the same path as the script, to simplify location selection.
  • Provide some graphics assets for Steam to use.
  • Text/gif tutorial for install.
  • Text/gif tutorial for setting images manually.
  • Create basic demo video.
  • Create basic how-to video.
  • Create detailed how-to video, including explaination of entering desktop mode and using deck controls.

Stretch goals

  • Improve installer so it can automatically:
    • Add the game to steam.
    • Set the game's compatability tool.
    • Set the game's name.
    • Set all of the images for the game.
    • Import a custom controller scheme.
  • Create a flatpak and add to flathub so users can simply install from Discover.
  • Make everything more robust

See the open issues for a full list of proposed features (and known issues).

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

License

¯\(ツ)/¯ Don't sell it, I guess. Abide by the EULA and TOS provided by Singularity 6 for Palia.

(back to top)

Contact

Madalee - discord

Project Link: https://github.com/t3nk3y/palia_steam_helper

(back to top)

Further Details - This is outdated

Below is a, potentially overly, in-depth explaination of everything these scripts do.
It's intended for anyone who is interested in the nitty-gritty, and isn't needed for anyone who just wants to play the game.

The entire process consistes of a few commands/scripts

  • a single bash command:

    curl -L https://raw.githubusercontent.com/t3nk3y/palia_steam_helper/main/install_palia.sh | bash

    This uses curl(a command line based http downloader) to download the install_palia.sh script and passes the content of the file to bash(a command interpreter, one of the most common used in linux)

  • install_palia.sh
    This bash script does a few things:

    • Checks to see if it's in your home directly, if so, it tells you not to run it from your home directory and quits
    • Checks if you already have palia_steam_helper:
      • if you do, it updates it to the latest version, then quits
      • If you dont, it downloads it, then tries to add it to Steam as a non-steam game for you, by using the xdg-open(tell X-windows environments to open a webpage in the default browser) command combined with a steam:// URL. However, as this feature of Steam seems to be broken in the newer versions, it will likely just open the "Add a non-steam game" for you.
      • If it fails to even get the "Add a non-steam game" to open, it will let you know
    • Walks you through selecting the right file in steam, renaming the shortcut, and setting it to use the right Proton mode.
  • palia_steam_helper.sh
    This is the main script, and the one you run from Steam, each time. Even though it ends in .sh, it's actually a Python script. It only ends in .sh because Steam will not show it by default if it doesn't end in an extension it's expecting.
    It does the following:

    • Changes the location of where the Proton prefix will be placed so it gets put in the same directory as the script, in a subdirectory called "steam". This simplifies the process of letting the user decide where they want the game installed(such as on the main drive vs SD card), and makes it a lot easier to find the game files in the future, vs being stored deep, in a hidden folder under steams stuff in the users home directory under some random numbered folder.
    • Sets several Proton/Wine/DXVK/GPU environment variables intended to improve performance.(mostly related to shader caching)
      • DXVK_CONFIG_FILE - Set to script directory/dxvk.conf for convenience
      • DXVK_HUD - Set to show "Compiling Shaders" message when doing so(maybe it doesnt work with DX12)
      • DXVK_STATE_CACHE_PATH - Set DXVK state cache to subdirectory of script directory
      • VKD3D_SHADER_CACHE_PATH - Set VKD3D shader cache to subdirectory of script directory
      • __GL_SHADER_DISK_CACHE_PATH - Set GL shader cache to subdirectory of script directory
      • __GL_SHADER_DISK_CACHE - Enable GL Shader disk cache(likely on by default anyway)
      • __GL_SHADER_DISK_CACHE_SKIP_CLEANUP - Keep the GL shader cache between launches
      • STAGING_SHARED_MEMORY - Enable staging shared memory
      • DXVK_ASYNC - Enable DXVK async shader compile (may be default, and deprecated)
      • RADV_PERFTEST - Enable Radeon shader cache and async shader compile
      • mesa_glthread - Enable mesa based async shader compile (Intel only I think)
      • PROTON_NO_FSYNC - Disable FSYNC, it seems to mess things up
      • If this is a SteamDeck:
        • Put the shader caches on the root drive(not the current directory) as it should be the fastest drive in the system
          Placed in /home/user/.cache/Palia
    • Checks if the PaliaLauncher.exe is already installed in the right place
      (We are assuming if the file is there, Palia is already fully installed):
      • If it isn't, do the following for initial install:
        • Download the latest Palia patch manifest, and get the following from it:
          • What is the newest patch version
          • What is the URL for the base game zip
        • Download VCRedist 2022 (required by Palia)
        • Download PaliaLauncher.exe
        • Download base Palia game zip
        • Make a steam folder under the same folder as a the script
        • Make a pfx folder for the Wine/Proton prefix under the steam folder
        • Make the full folder structure for Palia up to drive_c/users/steamuser/AppData/Local/Palia/Client
        • Extract the base Palia zip to the Client folder
        • Create a registry file to tell Palia that UE and Palia are installed in the correct paths
        • Create a bat file to import the registry file and to query the registry to make sure the changes stick
        • Run the bat file
          This step is what actually initializes the prefix
        • Install VCRedist 2022 in the prefix
        • Cleanup all temp files(eg, registry, batch script, zip files, etc...)
        • Make the Palia Downloads folder next to the Client folder, as it is requires for PalaiaLauncher.exe to run
        • Place PaliaLauncher.exe where it belongs
          drive_c/users/steamuser/AppData/Local/Palia/Launcher/PaliaLauncher.exe
    • Launch PaliaLauncher.exe

About

Helper script to make installing Palia in Steam easy on Linux and SteamDeck

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published