Teamfight Tactics now runs on Unreal Engine. Riot moved it off Hextech — the in-house engine it had shared with League of Legends since 2019 — with Set 18, Enchanted Wilds, which launched in August 2026.
With over 300 million players across its lifetime and around 30 million monthly actives, this is one of the largest games ever migrated to Unreal from another engine. And it was done on a live game, without taking it offline.

Why Did TFT Switch to Unreal Engine?
The reason is organisational more than technical. TFT was built inside League of Legends’ engine, which meant every TFT change had to work around League’s codebase and release schedule. Two very different games were sharing one set of technical constraints.
Moving to Unreal decouples them. Riot’s stated goal is the ability to build tools and technology specific to TFT, and to ship without colliding with League’s own updates. As the team put it, the move was made for the game’s long-term future rather than for any immediate gain.
Riot has been explicit that this is not a sequel or a reboot — the same game, the same team, on a new engine.
The Part Developers Should Pay Attention To
Rebuilding a live service game on a new engine while it continues running is genuinely hard, and Riot has been unusually open about how it went.
The migration was announced at Unreal Fest in Chicago by Gina Hope, Riot’s senior director of engineering, who said the work had been underway since shortly after she joined the TFT team in 2024. That is roughly two years of engine migration on a game that never stopped shipping content.
Riot also credits internal knowledge transfer: the VALORANT R&D team, who had moved that game to Unreal Engine 5 in 2025, supported the TFT developers as they learned the engine. Having an in-house team that had already done the migration once was a significant advantage — and an argument for why studios standardise on engines.
What Changed for Players
- Riot accounts, RP, TFT currencies and cosmetics all carried over
- Preferred settings and favourited Loadout items were reset in the migration
- The first Set 18 patch was a larger download than usual on PC; the mobile app was replaced automatically
- A standalone PC client, separate from the League client, was planned to follow later in the year
Riot deliberately extended the PBE test window to four weeks, openly expecting more bugs than usual for a first set on a new engine. Setting that expectation publicly, rather than promising a flawless launch, is the sort of thing more studios should copy.
What This Says About Engine Choice in 2026
Riot is one of the few studios with the resources to maintain a proprietary engine, and it has now moved two flagship titles — VALORANT and TFT — onto Unreal.
The calculus is worth understanding, because it applies at any scale. A custom engine gives total control and no licence fees, but every hour spent maintaining it is an hour not spent on the game. Commercial engines cost money and impose constraints, but you inherit tooling, documentation and a hiring pool who already know the software.
When a studio the size of Riot decides that trade favours Unreal for a game like TFT, it says something about how expensive engine maintenance has become relative to licensing.
Does This Matter If You Are Not Riot?
Two takeaways transfer to smaller teams.
First, engine migration is possible but expensive. Two years, a dedicated team and support from colleagues who had done it before. If you are an indie weighing a switch mid-project, scale that cost to your team and be honest about it.
Second, the reason for switching was tooling and independence, not graphics. Nobody moved TFT to Unreal to make it prettier. They moved it so the team could build what it needed without asking permission from another game’s codebase. That is usually the real reason engine decisions matter — and it is rarely the reason people argue about online.
If you are choosing an engine now, our Godot vs Unity vs Unreal guide covers the practical trade-offs, and you can browse Unreal tools in our Unreal Engine collection.

