In Free City, an online open-world video game created by Soonami Games, a complex web of deceit comes to light when its code is found to be derived from an unreleased project named Life Itself, developed by Walter "Keys" McKey and Millie Rusk. As Keys works at Soonami, Millie takes on the avatar of Molotov Girl to search for evidence that asserts ownership over the stolen code.
In this vibrant game world, we follow Guy, a non-player character (NPC) voiced by Ryan Reynolds, who works as a bank teller alongside his best friend Buddy. Oblivious to the nature of his reality, Guy's life changes dramatically after he encounters Molotov Girl. Captivated by her song, which he believes his dream girl would adore, he begins to break free from his programmed routine. This moment sparks a transformation in Guy, especially after he gets a pair of sunglasses from a player attempting to rob his bank, unveiling the hidden player interactions and objectives in Free City.
Desiring validation from Millie, Guy discovers that she initially mistakes him for another player known as "Blue Shirt Guy." Determined to win her over, Millie challenges Guy to level up to 100 before they can converse further. While Keys and his colleague Mouser, portrayed by Utkarsh Ambudkar, suspect Guy is a hacker masquerading as an NPC, they ultimately find themselves bewildered by his growing notoriety. Opting for a path of virtue, he completes missions within Free City, exceeding level 102 and catching everyone's attention.
Their fateful reunion occurs when Millie infiltrates a protected compound known as the Stash, holding vital evidence for her legal claim. In an unexpected twist, when Guy expresses a wish to kiss her, it leads to a deepening connection that stirs the interest of Keys. As it turns out, Guy's unique self-awareness stems from advanced AI coding that embodies Millie's personal preferences, leading him to develop genuine feelings for her. After Millie reveals the truth about his existence, their relationship faces a test: can love transcend the bounds of programming?
Guy's journey toward agency continues as he teams with Buddy to further assist Millie in her quest for justice, which culminates in a thrilling showdown against the sinister head developer Antwan, played by Taika Waititi. The stakes soar when Antwan attempts to erase Free City to pave the way for a sequel, prompting Keys to intervene and help protect Guy and Millie.
Despite various challenges that threaten to erase their very existence, Guy embraces his newfound sentience alongside other NPCs, proving their worth beyond mere coding. In a dramatic finale, with Millie's kiss helping Guy reclaim his memories, they discover an unprotected island holding the key to their salvation.
As Antwan's nefarious plans unravel, and with the help of Keys, Guy and Millie rally their fellow NPCs to stand against their would-be erasure. The gamers take notice as the fragile line between reality and the game blurs, reactions igniting worldwide.
In a turn of events, Millie strikes a deal that values the game's programming over mere ownership, saving the lifeblood of their digital worlds. The aftermath reveals Free City 2 failing spectacularly, while the now-exposed Antwan faces justice for his misdeeds. Ultimately, Keys, Mouser, and Millie set forth to launch a new venture titled Free Life, where they can reintroduce Guy, Buddy, and all the other beloved NPCs.
United once more, Free Life embarks on a journey of self-exploration, filled with hopes and dreams that unfurl beyond code, guided by the love letter hidden within Keys' programming. In this new existence, Guy, Millie, and Buddy thrive, cherishing their individuality in a world without constraints.