Skip to content

Instantly share code, notes, and snippets.

@NelloKudo
Last active June 2, 2025 15:11
Show Gist options
  • Save NelloKudo/ffae4490b625eac4cca4a943d4def00f to your computer and use it in GitHub Desktop.
Save NelloKudo/ffae4490b625eac4cca4a943d4def00f to your computer and use it in GitHub Desktop.
How to play Teamfight Tactics (TFT) on Linux (Waydroid)

Playing TFT on Linux using Waydroid

Just like many other League addicts, ever since the Vanguard incident, TFT has been a no-go....

except it isn't, since the Android version works just as fine, after some tweaks!

Screenshot From 2025-01-02 22-05-49

Index

Step 1: Pre-requisites for Waydroid to work

Waydroid relies on the binder kernel module: make sure you're running a kernel supporting it if you get any issues related to it.

Some examples of working ones are Cachyos's, Nobara's, Zen or Xanmod kernels.

Wayland is also needed, but it works just fine on x11 using weston; we'll get into it later.

Step 2: Installing Waydroid

You can find the instructions for installing Waydroid at here: https://docs.waydro.id/usage/install-on-desktops

I'll cover the install process for Arch Linux or based distros.

yay -S waydroid
sudo waydroid init
sudo systemctl enable --now waydroid-container.service

Intel and AMD users should have no issues overall; NVIDIA users though, read at the fixes here: https://wiki.archlinux.org/title/Waydroid#GPU_Requirements

Step 3: Configuring Waydroid

Using the great waydroid-script repo, time to tweak our Android install.

Make sure to install lzip from your repositories before using it. For Arch users: sudo pacman -S lzip

Now follow the instructions from their repo:

git clone https://github.com/casualsnek/waydroid_script
cd waydroid_script
python3 -m venv venv
venv/bin/pip install -r requirements.txt
sudo venv/bin/python3 main.py

Here, select the following just like in the image, but depending on your GPU:

  • Select libndk if on AMD
  • Select libhoudini if on Intel (switch to libndk in case it's not working!)

In my case:

image

Once done, we're ready to launch Waydroid!

Step 4: Launching Waydroid

I'll divide the guide between X11 and Wayland.

X11:

You'll first need to install weston from your repos. Arch users: sudo pacman -S weston

You can run Waydroid within weston with this little script:

unset WAYLAND_DISPLAY && waydroid session stop && weston --width 1600 --height 900 --socket=wayland-1 &>/dev/null & sleep 1 && WAYLAND_DISPLAY=wayland-1 XDG_SESSION_TYPE=wayland waydroid show-full-ui && pkill -x weston 

Adjust the resolution to your needs like 1920x1080 or add the --fullscreen parameter if you want it!

You can also save it to a script to launch from terminal or edit with:

echo "unset WAYLAND_DISPLAY && waydroid session stop && weston --width 1600 --height 900 --socket=wayland-1 &>/dev/null & sleep 1 && WAYLAND_DISPLAY=wayland-1 XDG_SESSION_TYPE=wayland waydroid show-full-ui && pkill -x weston" | sudo tee /usr/local/bin/waydroid-x11
sudo chmod +x /usr/local/bin/waydroid-x11

Now running waydroid-x11 should be all!

Wayland:

waydroid show-full-ui

...and it should be all up and running!

You can also customize the window's size if needed:

waydroid prop set persist.waydroid.width 1920
waydroid prop set persist.waydroid.height 1024
sudo systemctl restart waydroid-container.service

Or, if you prefer Windowed mode to fullscreen, you can set it with:

waydroid prop set persist.waydroid.multi_windows true
sudo systemctl restart waydroid-container.service

Step 5: Enabling Google apps and Installing TFT

Once in Waydroid, check if your internet is working by opening Play Store.

If it doesn't work, run the following or check the Arch wiki.

Docker is also known to create issues with Waydroid's net script, solution's here.

sudo ufw allow 67
sudo ufw allow 53
sudo ufw default allow FORWARD

Once Play Store is open, try to login and...you'll get upon a This device isn't Play Protect certified notification. A classic.

Let's fix it real quick according to Waydroid's instructions:

sudo waydroid shell

And then:

ANDROID_RUNTIME_ROOT=/apex/com.android.runtime ANDROID_DATA=/data ANDROID_TZDATA_ROOT=/apex/com.android.tzdata ANDROID_I18N_ROOT=/apex/com.android.i18n sqlite3 /data/data/com.google.android.gsf/databases/gservices.db "select * from main where name = \"android_id\";"

Copy the number string after "android_id|" and paste it at the following link: https://www.google.com/android/uncertified

Wait a few minutes, restart Waydroid and you'll have an up-and-running Play Store. Login as usual, and download TFT!

Step 6: Playing TFT and optimizing it!

Open TFT like usual, login and let it download its things. Upon finish, close it as it's time to optimize it!

TFT's config file is hidden in ~/.local/share/waydroid/..., here's how to edit it:

sudo nano /home/$USER/.local/share/waydroid/data/data/com.riotgames.league.teamfighttactics/no_backup/Config/Game.cfg

Here there's a LOT of stuff you can customize (even resolution, if it lags) but what we're looking for is:

  • WaitForVerticalSync: change it to 1 in order to unlock fps (it's needed, apparently)
  • FrameCapType: change it to 0, again, to unlock fps.

Now save and exit with CTRL+X.

And finally, that's pretty much it! Enjoy playing TFT!

image

Further optimizations - UI:

If you run TFT in fullscreen on a 1920x1080 monitor, you might notice that the UI appears excessively large—almost as if it's been upscaled for mobile. This happens because the game has hardcoded resolution checks, and if the display resolution is within five pixels of 1920x1080, it assumes it's running on a phone, forcing a mobile-optimized UI.

After testing for weeks, I found an incredibly simple fix: slightly increasing the resolution.

sudo waydroid shell
wm size 1920x1085

This small tweak makes a huge difference in usability, making it way closer to the original UI for the PC version :')

2025-02-12_15-30 2025-02-12_15-50

Some bugs I noticed xd

  • The carousel and some arenas looks.... black. You can still see champions and items above, but for some reason it stays black xd. Not really sure whether it depends on video drivers or what..
@SanteriK123
Copy link

Any clue how it would be possible to get the better UI scaling for a 2560x1440 monitor? Adding the 5 pixels doesn't work. Right now I'm just using the 1920x1085 resolution, which works ok but results in a faster mouse speed...

Tried playing around a bit and even though I can't really test cause I have a 1080p monitor, it seems that adding 10 pixels does the job? Try: wm size 2560x1450
2025-04-14.16-51-44.mp4

Thanks a lot, 10 pixels did the job. It's fairly playable now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment